Python3.6 Schedule模块定时任务(实例讲解)


Posted in Python onNovember 09, 2017

一,编程环境

PyCharm2016,Anaconda3 Python3.6

需要安装schedule模块,该模块网址:https://pypi.python.org/pypi/schedule

打开Anaconda Prompt,输入:conda install schedule 提示:Package Not Found Error

于是,使用 pip 安装。由于Anaconda3 中已经自带了pip,如下图:

Python3.6 Schedule模块定时任务(实例讲解)

于是 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 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模块定时任务(实例讲解)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python实现比较两个文件夹中代码变化的方法
Jul 10 Python
Python实现自动为照片添加日期并分类的方法
Sep 30 Python
基于python中staticmethod和classmethod的区别(详解)
Oct 24 Python
对pandas中Series的map函数详解
Jul 25 Python
简单了解python PEP的一些知识
Jul 13 Python
python rsync服务器之间文件夹同步脚本
Aug 29 Python
python在OpenCV里实现投影变换效果
Aug 30 Python
Windows下PyCharm2018.3.2 安装教程(图文详解)
Oct 24 Python
python实现的Iou与Giou代码
Jan 18 Python
Python如何自动获取目标网站最新通知
Jun 18 Python
如何用tempfile库创建python进程中的临时文件
Jan 28 Python
Python 带星号(* 或 **)的函数参数详解
Feb 23 Python
Python中scatter函数参数及用法详解
Nov 08 #Python
python实现人脸识别代码
Nov 08 #Python
python生成随机图形验证码详解
Nov 08 #Python
Python爬虫实例爬取网站搞笑段子
Nov 08 #Python
python执行使用shell命令方法分享
Nov 08 #Python
python通过socket实现多个连接并实现ssh功能详解
Nov 08 #Python
Python基础练习之用户登录实现代码分享
Nov 08 #Python
You might like
推荐Discuz!5的PHP代码高亮显示与实现可运行代码
2007/03/15 PHP
php tp验证表单与自动填充函数代码
2012/02/22 PHP
深入解析php中的foreach函数
2013/08/31 PHP
PHP调用JAVA的WebService简单实例
2014/03/11 PHP
四个PHP非常实用的功能
2015/09/29 PHP
PHP读取大文件末尾N行的高效方法推荐
2016/06/03 PHP
php多线程并发实现方法
2016/09/30 PHP
js静态作用域的功能。
2006/12/25 Javascript
js加减乘除丢失精度问题解决方法
2014/05/16 Javascript
Javascript中prototype属性实现给内置对象添加新的方法
2015/05/14 Javascript
浅谈jQuery中ajaxPrefilter的应用
2016/08/01 Javascript
Scala解析Json字符串的实例详解
2017/10/11 Javascript
vue addRoutes实现动态权限路由菜单的示例
2018/05/15 Javascript
Vux+Axios拦截器增加loading的问题及实现方法
2018/11/08 Javascript
jQuery层叠选择器用法实例分析
2019/06/28 jQuery
jQuery模仿ToDoList实现简单的待办事项列表
2019/12/30 jQuery
解决vue自定义指令导致的内存泄漏问题
2020/08/04 Javascript
使用Vant完成通知栏Notify的提示操作
2020/11/11 Javascript
[03:20]次级联赛厮杀超职业 现超级兵对拆世纪大战
2014/10/30 DOTA
python使用7z解压apk包的方法
2015/04/18 Python
python 随机数使用方法,推导以及字符串,双色球小程序实例
2017/09/12 Python
谈谈python中GUI的选择
2018/03/01 Python
python面试题Python2.x和Python3.x的区别
2019/05/28 Python
keras中epoch,batch,loss,val_loss用法说明
2020/07/02 Python
HTML5新增form控件和表单属性实例代码详解
2019/05/15 HTML / CSS
使用placeholder属性设置input文本框的提示信息
2020/02/19 HTML / CSS
非功能性需求都包括哪些方面
2013/10/29 面试题
大学四年学习的自我评价分享
2013/12/09 职场文书
测绘专业大学生职业生涯规划书
2014/02/10 职场文书
政府信息公开实施方案
2014/05/09 职场文书
五四青年节演讲稿
2014/05/26 职场文书
敬老月活动总结
2014/08/28 职场文书
二手车交易协议书标准版
2014/11/16 职场文书
MySql开发之自动同步表结构
2021/05/28 MySQL
Windows 64位 安装 mysql 8.0.28 图文教程
2022/04/19 MySQL
java版 联机五子棋游戏
2022/05/04 Java/Android