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命令行参数解析OptionParser类用法实例
Oct 09 Python
python访问抓取网页常用命令总结
Apr 11 Python
python模块之paramiko实例代码
Jan 31 Python
基于Python实现迪杰斯特拉和弗洛伊德算法
May 27 Python
Tensorflow卷积实现原理+手写python代码实现卷积教程
May 22 Python
Python使用jupyter notebook查看ipynb文件过程解析
Jun 02 Python
将tf.batch_matmul替换成tf.matmul的实现
Jun 18 Python
Python第三方包PrettyTable安装及用法解析
Jul 08 Python
Python趣味入门教程之循环语句while
Aug 26 Python
Python+logging输出到屏幕将log日志写入文件
Nov 11 Python
快速创建python 虚拟环境
Nov 28 Python
Python实现猜拳与猜数字游戏的方法详解
Apr 06 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
PHP+FFMPEG实现将视频自动转码成H264标准Mp4文件
2014/09/24 PHP
php使用function_exists判断函数可用的方法
2014/11/19 PHP
php动态生成版权所有信息的方法
2015/03/24 PHP
PHP的Socket网络编程入门指引
2015/08/11 PHP
thinkphp多层MVC用法分析
2015/12/30 PHP
PHP+JQUERY操作JSON实例
2017/03/23 PHP
Jquery 扩展方法
2010/05/06 Javascript
广泛收集的jQuery拖放插件集合
2012/04/09 Javascript
jquery 快速回到页首的方法
2013/12/05 Javascript
JS判断客户端是手机还是PC的2个代码
2014/04/12 Javascript
jquery xMarquee实现文字水平无缝滚动效果
2014/04/29 Javascript
angularJS 中$scope方法使用指南
2015/02/09 Javascript
js进行表单验证实例分析
2015/02/10 Javascript
深入浅析jQuery对象$.html
2016/08/22 Javascript
详解Vue-cli中的静态资源管理(src/assets和static/的区别)
2018/06/19 Javascript
JS实现求5的阶乘示例
2019/01/21 Javascript
一个小时快速搭建微信小程序的方法步骤
2019/04/15 Javascript
微信小程序使用车牌号输入法的示例代码
2019/08/20 Javascript
layui实现把数据表格时间戳转换为时间格式的例子
2019/09/12 Javascript
vue router-link 默认a标签去除下划线的实现
2020/11/06 Javascript
vue.js页面加载执行created,mounted的先后顺序说明
2020/11/07 Javascript
[03:39]DOTA2英雄梦之声_第05期_幽鬼
2014/06/23 DOTA
Python基于smtplib实现异步发送邮件服务
2015/05/28 Python
python实现实时监控文件的方法
2016/08/26 Python
利用python发送和接收邮件
2016/09/27 Python
python实现单向链表详解
2018/02/08 Python
Python 装饰器@,对函数进行功能扩展操作示例【开闭原则】
2019/10/17 Python
全网最全python库selenium自动化使用详细教程
2021/01/12 Python
美国滑雪和滑雪板商店:Buckman
2018/03/03 全球购物
美国校服网上商店:French Toast
2019/10/08 全球购物
对孩子的寄语
2014/04/09 职场文书
党员自我评价2015
2015/03/03 职场文书
MySQL系列之十 MySQL事务隔离实现并发控制
2021/07/02 MySQL
vue使用echarts实现折线图
2022/03/21 Vue.js
css中有哪些方式可以隐藏页面元素及区别
2022/06/16 HTML / CSS
JS实现刷新网页后之前浏览位置保持不变示例详解
2022/08/14 Javascript