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使用lxml模块和Requests模块抓取HTML页面的教程
May 16 Python
Python使用回溯法子集树模板获取最长公共子序列(LCS)的方法
Sep 08 Python
python中文分词教程之前向最大正向匹配算法详解
Nov 02 Python
Python3调用微信企业号API发送文本消息代码示例
Nov 10 Python
python3.6+django2.0开发一套学员管理系统
Mar 03 Python
Python Tkinter模块实现时钟功能应用示例
Jul 23 Python
python使用selenium登录QQ邮箱(附带滑动解锁)
Jan 23 Python
梅尔频率倒谱系数(mfcc)及Python实现
Jun 18 Python
基于TensorFlow中自定义梯度的2种方式
Feb 04 Python
浅谈Python3多线程之间的执行顺序问题
May 02 Python
python神经网络编程实现手写数字识别
May 27 Python
python绘制分布折线图的示例
Sep 24 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中ADODB类详解
2008/03/25 PHP
Zend Guard一些常见问题解答
2008/09/11 PHP
攻克CakePHP系列一 连接MySQL数据库
2008/10/22 PHP
利用PHP扩展vld查看PHP opcode操作步骤
2013/03/04 PHP
如何利用php array_multisort函数 对数据库结果进行复杂排序
2013/06/08 PHP
Linux编译升级php的详细方法
2013/11/04 PHP
ThinkPHP控制器里javascript代码不能执行的解决方法
2014/11/22 PHP
统计PHP目录中的文件数方法
2019/03/05 PHP
实例:尽可能写友好的Javascript代码
2006/10/09 Javascript
js拼接html注意问题示例探讨
2014/07/14 Javascript
Jquery对象和Dom对象的区别分析
2014/11/20 Javascript
javascript里使用php代码实例
2014/12/13 Javascript
JQuery自适应窗口大小导航菜单附源码下载
2015/09/01 Javascript
jquery validate demo 基础
2015/10/29 Javascript
tab栏切换原理
2017/03/22 Javascript
angular.js4使用 RxJS 处理多个 Http 请求
2017/09/23 Javascript
详解webpack-dev-server使用http-proxy解决跨域问题
2018/01/13 Javascript
原生JS实现瀑布流插件
2018/02/06 Javascript
解决LayUI表单获取不到data的问题
2018/08/20 Javascript
javascript数据类型中的一些小知识点(推荐)
2019/04/18 Javascript
使用localStorage替代cookie做本地存储
2019/09/25 Javascript
vue全屏事件开发详解
2020/06/17 Javascript
Vue中keep-alive 实现后退不刷新并保持滚动位置
2020/03/17 Javascript
vue+element使用动态加载路由方式实现三级菜单页面显示的操作
2020/08/04 Javascript
[53:20]2018DOTA2亚洲邀请赛 4.1 小组赛 A组加赛 VG vs OG
2018/04/03 DOTA
使用python 3实现发送邮件功能
2018/06/15 Python
python TKinter获取文本框内容的方法
2018/10/11 Python
python批量获取html内body内容的实例
2019/01/02 Python
Python使用字典实现的简单记事本功能示例
2019/08/15 Python
python游戏开发的五个案例分享
2020/03/09 Python
工程总经理工作职责
2013/12/09 职场文书
建筑项目策划书
2014/01/13 职场文书
2014审计局领导班子民主生活会对照检查材料思想汇报
2014/09/20 职场文书
优秀员工事迹材料
2014/12/20 职场文书
费用申请报告范文
2015/05/15 职场文书
mysql数据库入门第一步之创建表
2021/05/14 MySQL