之前写的python文件
2015-10-07 09:47
579 查看
#coding = utf-8
import fileinput
import pymysql
import sys
import time
import string
file_source = open(r"attack_1.txt",'r')
file_standard = open(r"normal_1.txt",'r')
"""
line = file_obj.readline().rstrip('\n')
i = line.index(" ")
print(line)
"""
def create_connect():
conn = pymysql.connect(host='localhost', port=3306,user='root',passwd='root',db='yulin',charset='utf8')
return conn
def close_conncet(conn):
conn.close()
def create_table(conn, table_name, sql_statement):
cur = conn.cursor()
cur.execute("DROP TABLE IF EXISTS %s"%str(table_name))
print("create table %s(%s)"%(str(table_name),str(sql_statement)))
cur.execute("create table %s(%s)"%(str(table_name),str(sql_statement)))
#for i in range(1,5):
# cur.execute("insert into table1(name) values('qqqqqq')")
#conn.commit()
cur.close()
def delete_kongge(table_name):
cur = conn.cursor()
lines = file_source.readlines()
#print(type(lines))
for line in lines:
# i = line.index("\n")
# line = line[:i]
cur.execute("insert into %s(name) values('%s');"%(str(table_name),str(line)))
conn.commit()
cur.close()
def simplify(table_source, table_target, table_standard, table_result, table_hash):
cur = conn.cursor()
line_list = []
line_list_AZ = []
num = 0
cur.execute("select * from %s;"%table_standard)
rows = cur.fetchall()
for row in rows:
if(row not in line_list):
line_list.append(row)
num = num + 1
for k in range(0, num):
line_list_AZ.append(chr(k+65))
cur.execute("insert into %s(name,id) values('%s','%s');"%(str(table_hash), line_list[k][0], line_list_AZ[k]))
for row in rows:
for j in range(0,num):
if(row == line_list[j]):
cur.execute('insert into %s(name) values("%s");'%(str(table_result),chr(65+j)))
break
cur.execute("select * from %s;"%table_source)
rows = cur.fetchall()
for row in rows:
for j in range(0,num):
if(row == line_list[j]):
cur.execute('insert into %s(name) values("%s");'%(str(table_target),chr(65+j)))
break
conn.commit()
cur.close()
def cut(K,table_source, table_target):
cur = conn.cursor()
cur.execute("select * from %s;"%table_source)
rows = cur.fetchall()
length = len(rows)
#for i in range(length+1):
# print((rows[i][0]))
for i in range(length-K+1):
#print(length)
#print(rows[0])
strings = ""
for j in range(K):
strings += rows[i+j][0]
cur.execute('insert into %s(sequence) values("%s");'%(str(table_target),strings))
conn.commit()
cur.close()
return length-K
"""
def insert_standard(table_name):
cur = conn.cursor()
lines = file_standard.readlines()
for line in lines:
cur.execute("insert into %s(sequence) values('%s');"%(str(table_name),str(line)))
cur.execute("select * from %s;"%table_name)
rows = cur.fetchall()
length_standard = len(rows)
print(length_standard) #length_standard = 84
file_source.close()
conn.commit()
cur.close()
return length_standard
"""
def insert_standard(table_name, table_cut_standard, K):
cur = conn.cursor()
#line = file_standard.read()
#length_standard = len(line)
cur.execute("select * from %s;"%table_name)
standards = cur.fetchall()
length_standard = len(standards)
for i in range(length_standard-K+1):
#print(length)
#print(rows[0])
#strings = ""
for j in range(k):
strings += standards[i+j][0]
cur.execute('insert into %s(sequence) values("%s");'%(str(table_cut_standard),strings))
conn.commit()
cur.close()
print(length_standard) # length_standard = 125
return length_standard
def calculate_distance(table_source, table_standard, table_target):
tail = length_source
distance_Hamming = [[0 for i in range(length_standard-K+1)]for i in range(tail+1)]
min_distance_Hamming = [K for i in range(tail+1)]
distances = ""
cur = conn.cursor()
cur.execute("select * from %s;"%table_source)
sources = cur.fetchall()
cur.execute("select * from %s;"%table_standard)
standards = cur.fetchall()
print(tail+1)
print(sources[1])
print(standards[1])
print(sources[1][0])
print(standards[1][0])
print(sources[1][0][5])
print(standards[1][0][5])
print(sources[1][0][6])
print(standards[1][0][6])
# print(sources[1][0][7])
# print(standards[1][0][7])
"""
(u'BCBDECF',)
(u'BCBDECF',)
BCBDECF
BCBDECF
"""
for i in range(tail+1):
#cur.execute("insert into %s(sequence) values('%s');"%(str(table_target),sources[i][1]))
for j in range(length_standard-K+1):
#distance_Hamming[i][j] = 0
for k in range(K):
if(sources[i][0][k] != standards[j][0][k]):
distance_Hamming[i][j] = distance_Hamming[i][j] + 1
if( distance_Hamming[i][j] < min_distance_Hamming[i]):
min_distance_Hamming[i] = distance_Hamming[i][j]
#cur.execute("insert into %s(distance_list) values('%s');"%(str(table_target),str(distance_Hamming[i])))
#cur.execute("update %s set min='%s';"%(str(table_target),str(min_distance_Hamming[i])))
#print(length_standard)
for m in range(length_standard-K+1):
distances += str(distance_Hamming[i][m])
cur.execute("insert into %s(indexx,sequence,distance_list,min) values('%s','%s','%s','%s');"%(str(table_target), str(i+1), sources[i][0], distances, str(min_distance_Hamming[i])))
distances = ""
#cur.execute("insert into %s(sequence,min) values('%s','%s');"%(str(table_target), sources[i][0], str(min_distance_Hamming[i])))
#print("distance_Hamming[i] = " + distance_Hamming[i])
#print("str(distance_Hamming[i]) =" + str(distance_Hamming[i]))
4000
conn.commit()
cur.close()
SA = min_distance_Hamming[0]
for i in range(tail+1):
if(SA < min_distance_Hamming[i]):
SA = min_distance_Hamming[i]
return SA
conn = create_connect()
K = 7
print("***********Begin*************")
time = time.strftime("%Y%m%d%H%M%S",time.localtime())
print(time)
create_table(conn, "table_no_blank_", "name char(20)")
delete_kongge("table_no_blank_")
create_table(conn, "table_simple_attack_", "name char(1)")
create_table(conn, "table_hash_", "name char(20), id char(1)")
create_table(conn, "table_standard_", "name char(20)")
create_table(conn, "table_simple_standard_", "name char(1)")
delete_kongge("table_standard_")
simplify("table_no_blank_", "table_simple_attack_", "table_standard_", "table_simple_standard_", "table_hash_")
create_table(conn, "table_cut_standard_", "sequence char(50)")
create_table(conn, "table_cut_", "sequence char(50)")
length_source = cut(K, "table_simple_attack_", "table_cut_")
length_standard = insert_standard("table_simple_standard_", "table_cut_standard_", K)
create_table(conn, "table_distance_", "indexx char(7), sequence char(20), distance_list char(254), min char(2)")
SA = calculate_distance("table_cut_", "table_simple_standard_", "table_distance_")
print("SA=%d ^SA=%0.3f"%(SA,(float (SA))/K)) #there is no a ,
print("*********the end************")
conn.close()
相关文章推荐
- Python动态类型的学习---引用的理解
- Python3写爬虫(四)多线程实现数据爬取
- 垃圾邮件过滤器 python简单实现
- 下载并遍历 names.txt 文件,输出长度最长的回文人名。
- install and upgrade scrapy
- Scrapy的架构介绍
- Centos6 编译安装Python
- 使用Python生成Excel格式的图片
- 让Python文件也可以当bat文件运行
- [Python]推算数独
- Python中zip()函数用法举例
- Python中map()函数浅析
- Python将excel导入到mysql中
- Python在CAM软件Genesis2000中的应用
- 使用Shiboken为C++和Qt库创建Python绑定
- FREEBASIC 编译可被python调用的dll函数示例
- Python 七步捉虫法