python连接数据库处理数据,写入文本
freezed_user_record.txt对应的内容
123324 2015-04-15 13:52:00
数据表refund的字段(id,last_update_time)
脚本内容如下:
#!/usr/bin/python
# -*- encoding:utf-8 -*-
#读取freezed_user_record.txt获取所有冻结用户
#获取拥有退款单的冻结用户的
import sys
import MySQLdb
import traceback
import time
import datetime
freezed_users = {}
freezed_users_that_has_refund = {}
def exportFreezedUserRecord(cursor, id, last_update_time):
sql = "select count(*) from refund where id = %d and refund_time >= %d and refund_time <= %d"
date = datetime.datetime.strptime(last_update_time, '%Y-%m-%d %H:%M:%S')
start_time = date - datetime.timedelta(days=5)
end_time = date + datetime.timedelta(days=5)
full_sql = sql % (int(id), int(time.mktime(start_time.timetuple())*1000), int(time.mktime(end_time.timetuple())*1000))
cursor.execute(full_sql)
datas = cursor.fetchall()
for row in datas:
if row[0] > 0:
freezed_users_that_has_refund[xiaomi_id] = last_update_time
def readFile():
with open('freezed_user_record.txt', 'r') as file:
for row in file.readlines():
print(row)
row = row.strip()
arrays = row.split("\t")
if(arrays[0] != "xiaomi_id"):
freezed_users[arrays[0]] = arrays[1]
def writeResultToFile():
with open('freezed_user_that_has_refund_record.txt', 'w') as file:
file.truncate()
for id, last_update_time in freezed_users_that_has_refund.items():
file.write(id + "\t" + last_update_time + "\n")
file.flush()
if __name__ == "__main__":
db = MySQLdb.connect("ip", "username", "password", "database名", charset='utf8')
try:
cursor = db.cursor()
readFile()
for id, last_update_time in freezed_users.items():
exportFreezedUserRecord(cursor, id, last_update_time)
writeResultToFile()
except Exception, e:
traceback.print_exc()
finally:
print 'close'
db.close()