Python3.6使用Schedule模块实现定时任务的完整指南
本文详细讲解在Python3.6环境下使用Schedule模块执行周期性定时任务的方法。内容涵盖通过pip安装schedule模块、建立MySQL数据库连接、查询数据并写入CSV文件的完整流程,以及模块的基本用法示例,帮助开发者快速实现每日指定时间的自动任务执行。
一、编程环境配置
开发工具选用PyCharm 2016,Python版本为Anaconda3环境下的Python 3.6。
项目需安装schedule模块,该模块的官方下载页面为:https://pypi.python.org/pypi/schedule。
在Anaconda Prompt命令行中输入命令:conda install schedule。此时系统提示Package Not Found Error,即包未找到错误。
因此改用pip进行安装。由于Anaconda3已内置pip工具,具体界面如下图所示:

随后在cmd命令行中切换至scripts目录,执行命令pip.exe install schedule,安装成功后即可在PyCharm中通过import schedule导入该模块。
二、实现每日指定时间从数据库查询数据并写入CSV文件
①使用sqlalchemy模块建立数据库连接。关于Windows下Python 3.6连接MySQL驱动的安装方法,可参考文章:windows10下使用Pycharm2016基于Anaconda3 Python3.6安装Mysql驱动总结。
②使用schedule模块执行周期性任务。关于该模块的具体用法,请参考官网提供的示例代码。
③利用csv模块将查询到的数据库记录写入文件。
整个功能的完整代码如下:
import schedule
import codecs
import csv
import time
from sqlalchemy import create_engine
def get_conn():
engine = create_engine("mysql+pymysql://root:password@localhost:3306/test?charset=utf8mb4")
conn = engine.connect()
return conn
def query():
sql = "select * from user limit 10"
conn = get_conn()
return conn.execute(sql)
def read_mysql_to_csv(filename):
with codecs.open(filename=filename, mode='w') as f:
write = csv.writer(f, dialect='excel')
results = query()
for result in results:
write.writerow(result)
schedule.every().day.at("17:49").do(read_mysql_to_csv, "test")
while True:
schedule.run_pending()
time.sleep(10)
三、总结
schedule模块能够非常方便地实现:在每天的特定时间点周期性执行任务。其官方提供的示例代码如下:
import schedule
import time
def job():
print("I'm working...")
schedule.every(10).minutes.do(job)
schedule.every().hour.do(job)
schedule.every().day.at("10:30").do(job)
schedule.every().monday.do(job)
schedule.every().wednesday.at("13:15").do(job)
while True:
schedule.run_pending()
time.sleep(1)
以上这篇关于Python3.6 Schedule模块定时任务的实例讲解到此结束,希望能为读者提供参考,也欢迎大家继续支持本站。
本站声明
本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。













