改写sql的python脚本

# encoding: utf-8

import datetime

num = 10000  #数据库中已有的数据量,实时更新

today = datetime.now().strftime("%Y%m%d")
filename = 'stock_dynamicinfor'+today+'.sql'  #数据库备份的最新文件,当天更新数据

with open('D:/XGO/database_backup/%s' % filename, 'r')  as f:
    text = f.readlines()[46:]

with open('D:/XGO/database_backup/update/sql_statement','w') as f:
    for ele in text:
        ele = ele.split('(')
        ele[1]=ele[1].split(',')
        ele[1][0] = str(int(ele[1][0][1:-1])+num)
        ele[1][0] = '\''+ele[1][0]+'\''
        ele[1][1] = ','.join(ele[1][1:])
        ele[1] = ','.join([ele[1][0],ele[1][1]])
        ele = '('.join([ele[0],ele[1]])
        f.writelines(ele)

因为python字符串的是不可变的,所以使用python字符串的split方法和join方法进行操作更改sql语句。除此之外python字符串操作有很多方法,慢慢熟悉。

关于python文件操作的打开文件的模式。通常文件使用模式为'r','w'或是'a',分别代表读取、写入和追加。还有‘U’模式,代表通用换行符支持。其中'+'代表可读可写,'b'代表二进制模式访问。

使用‘r’或‘U’模式必须是文件已经存在。使用'w'模式打开的文件若存在则先情况,然后重新创建,以‘a’模式打开的文件,则将全部写入的数据追加到文件的末尾。

文件对象访问模式:

r : 以读方式打开

rU或Ua : 以读方式打开,同时提供通用换行符支持

w : 以写方式打开

a : 以追加模式打开

r+,w+,a+ : 以读写模式打开

rb : 以二进制读模式打开

wb : 以二进制写模式打开

ab : 以二进制追加模式打开

rb+ : 以二进制读写模式打开

wb+ : 以二进制读写模式打开

ab+ :以二进制读写模式打开