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 相关文章推荐
MySQLdb ImportError: libmysqlclient.so.18解决方法
Aug 21 Python
python 内置函数filter
Jun 01 Python
使用python 爬虫抓站的一些技巧总结
Jan 10 Python
Python机器学习之scikit-learn库中KNN算法的封装与使用方法
Dec 14 Python
Pandas透视表(pivot_table)详解
Jul 22 Python
python scrapy爬虫代码及填坑
Aug 12 Python
Python高阶函数、常用内置函数用法实例分析
Dec 26 Python
python+selenium+PhantomJS抓取网页动态加载内容
Feb 25 Python
利用 PyCharm 实现本地代码和远端的实时同步功能
Mar 23 Python
Python如何实现定时器功能
May 28 Python
python 线程的五个状态
Sep 22 Python
python 从list中随机取值的方法
Nov 16 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 CURL用法的深入分析
2013/06/09 PHP
深入Apache与Nginx的优缺点比较详解
2013/06/17 PHP
深入理解PHP中的Session和Cookie
2013/06/21 PHP
wamp安装后自定义配置的方法
2014/08/23 PHP
学习php设计模式 php实现策略模式(strategy)
2015/12/07 PHP
24条货真价实的PHP代码优化技巧
2016/07/28 PHP
php中Redis的应用--消息传递
2017/03/28 PHP
Kindeditor编辑器添加图片上传水印功能(php代码)
2017/08/03 PHP
jquery ui dialog里调用datepicker的问题
2009/08/06 Javascript
jQuery Ajax 实例全解析
2011/04/20 Javascript
jQuery源码分析-03构造jQuery对象-工具函数
2011/11/14 Javascript
Node.js 制作实时多人游戏框架
2015/01/08 Javascript
实例讲解使用原生JavaScript处理AJAX请求的方法
2016/05/10 Javascript
jQuery的ajax和遍历数组json实例代码
2016/08/01 Javascript
vue cli 全面解析
2018/02/28 Javascript
vue-cli 3.x 修改dist路径的方法
2018/09/19 Javascript
Element Table的row-class-name无效与动态高亮显示选中行背景色
2018/11/30 Javascript
vue+element导航栏高亮显示的解决方式
2019/11/12 Javascript
vue项目创建步骤及路由router
2020/01/14 Javascript
[01:16:28]DOTA2-DPC中国联赛 正赛 iG vs Magma BO3 第二场 2月23日
2021/03/11 DOTA
Python的ORM框架SQLAlchemy入门教程
2014/04/28 Python
Python中type的构造函数参数含义说明
2015/06/21 Python
安装python3的时候就是输入python3死活没有反应的解决方法
2018/01/24 Python
python 实现一个反向单位矩阵示例
2019/11/29 Python
利用python3筛选excel中特定的行(行值满足某个条件/行值属于某个集合)
2020/09/04 Python
世嘉游戏英国官方商店:SEGA Shop UK
2019/09/20 全球购物
中西医专业毕业生职业规划书
2014/02/24 职场文书
夫妻双方自愿离婚协议书怎么写
2014/12/01 职场文书
幼儿园个人师德总结
2015/02/06 职场文书
餐饮服务员岗位职责
2015/02/09 职场文书
锅炉工岗位职责
2015/02/13 职场文书
小学生勤俭节约倡议书
2015/04/29 职场文书
幼儿园教学工作总结2015
2015/05/12 职场文书
名人传读书笔记
2015/06/26 职场文书
关于空气污染危害的感想
2015/08/11 职场文书
springboot集成redis存对象乱码的问题及解决
2022/06/16 Java/Android