嗨,我正在用python开发一个cron作业,每5分钟从mysql查询数据并将其写入csv文件。
代码:
# -*- coding: utf-8 -*-
import mysql.connector
import csv
import datetime
import schedule
x = datetime.datetime.now()
date = str(x.date() - datetime.timedelta(0))
connection = mysql.connector.connect(host='localhost',database='',user='',
password='',auth_plugin='mysql_native_password')
cursor = connection.cursor()
def job():
x = datetime.datetime.now()
date = str(x.date() - datetime.timedelta(0))
cursor.execute("SELECT * FROM mydb.Data WHERE date = '%s'" % date)
results = cursor.fetchall()
c = csv.writer(open('test'+date+'.csv', 'w'))
try:
headers = ['id','p1','p2','p3','p4','p5','deviceType']
c.writerow(i for i in headers)
print('added headers')
for x in results:
c.writerow(x)
except:
print('CSV generation failed')
def cron_job():
schedule.every(300).seconds.do(job)
while True:
schedule.run_pending()
if __name__=='__main__':
cron_job()
这每5分钟运行一次cron作业,但是,数据仅是第一次添加到csv文件中。代码正在运行,没有任何异常。为什么我无法在csv中获取最新数据?我应该每次关闭文件或其他内容吗?