一,編程環境
PyCharm2016,Anaconda3 Python3.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 下 python3.6 for mysql 驅動安裝,可參考:windows10 下使用Pycharm2016 基于Anaconda3 Python3.6 安裝Mysql驅動總結
②使用schedule 模塊來執行周期性任務。關于該模塊的用法,可參考官網示例。
③使用csv模塊將查詢到的記錄寫入文件
整個完整代碼如下:
import scheduleimport codecsimport csvimport timefrom sqlalchemy import create_enginedef get_conn(): engine = create_engine("mysql+pymysql://root:password@localhost:3306/test?charset=utf8mb4") conn = engine.connect() return conndef 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 scheduleimport timedef 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模塊定時任務(實例講解)就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持VEVB武林網。
|
新聞熱點
疑難解答