您的位置:首页 > 编程语言 > Python开发

之前写的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