Python3中常用的处理时间和实现定时任务的方法的介绍


Posted in Python onApril 07, 2015

无论哪种编程语言,时间肯定都是非常重要的部分,今天来看一下python如何来处理时间和python定时任务,注意咯:本篇所讲是python3版本的实现,在python2版本中的实现略有不同,有时间会再写一篇以便大家区分。
1.计算明天和昨天的日期
 

#! /usr/bin/env python
#coding=utf-8
# 获取今天、昨天和明天的日期
# 引入datetime模块
import datetime 
#计算今天的时间
today = datetime.date.today()
#计算昨天的时间 
yesterday = today - datetime.timedelta(days = 1)
#计算明天的时间
tomorrow = today + datetime.timedelta(days = 1) 
#打印这三个时间
print(yesterday, today, tomorrow)

2.计算上一个的时间

方法一:
 

#! /usr/bin/env python
#coding=utf-8
# 计算上一个的时间
#引入datetime,calendar两个模块
import datetime,calendar
 
last_friday = datetime.date.today() 
oneday = datetime.timedelta(days = 1) 
 
while last_friday.weekday() != calendar.FRIDAY: 
 last_friday -= oneday 
 
print(last_friday.strftime('%A, %d-%b-%Y'))

方法二:借助模运算寻找上一个星期五
 

#! /usr/bin/env python
#coding=utf-8
# 借助模运算,可以一次算出需要减去的天数,计算上一个星期五
#同样引入datetime,calendar两个模块
import datetime 
import calendar 
 
today = datetime.date.today() 
target_day = calendar.FRIDAY 
this_day = today.weekday() 
delta_to_target = (this_day - target_day) % 7
last_friday = today - datetime.timedelta(days = delta_to_target) 
 
print(last_friday.strftime("%d-%b-%Y"))

3.计算歌曲的总播放时间

#! /usr/bin/env python
#coding=utf-8
# 获取一个列表中的所有歌曲的播放时间之和 
import datetime 
 
def total_timer(times): 
 td = datetime.timedelta(0) 
 duration = sum([datetime.timedelta(minutes = m, seconds = s) for m, s in times], td) 
 return duration 
 
times1 = [(2, 36), 
   (3, 35), 
   (3, 45), 
   ] 
times2 = [(3, 0), 
   (5, 13), 
   (4, 12), 
   (1, 10), 
   ] 
 
assert total_timer(times1) == datetime.timedelta(0, 596) 
assert total_timer(times2) == datetime.timedelta(0, 815) 
 
print("Tests passed.\n"
  "First test total: %s\n"
  "Second test total: %s" % (total_timer(times1), total_timer(times2)))

4.反复执行某个命令
 

#! /usr/bin/env python
#coding=utf-8
# 以需要的时间间隔执行某个命令 
 
import time, os 
 
def re_exe(cmd, inc = 60): 
 while True: 
  os.system(cmd); 
  time.sleep(inc) 
 
re_exe("echo %time%", 5)

5.定时任务

#! /usr/bin/env python
#coding=utf-8
#这里需要引入三个模块
import time, os, sched 
 
# 第一个参数确定任务的时间,返回从某个特定的时间到现在经历的秒数 
# 第二个参数以某种人为的方式衡量时间 
schedule = sched.scheduler(time.time, time.sleep) 
 
def perform_command(cmd, inc): 
 os.system(cmd) 
  
def timming_exe(cmd, inc = 60): 
 # enter用来安排某事件的发生时间,从现在起第n秒开始启动 
 schedule.enter(inc, 0, perform_command, (cmd, inc)) 
 # 持续运行,直到计划时间队列变成空为止 
 schedule.run() 
  
 
print("show time after 10 seconds:") 
timming_exe("echo %time%", 10)

6.利用sched实现周期调用
 

#! /usr/bin/env python
#coding=utf-8
import time, os, sched 
 
# 第一个参数确定任务的时间,返回从某个特定的时间到现在经历的秒数 
# 第二个参数以某种人为的方式衡量时间 
schedule = sched.scheduler(time.time, time.sleep) 
 
def perform_command(cmd, inc): 
 # 安排inc秒后再次运行自己,即周期运行 
 schedule.enter(inc, 0, perform_command, (cmd, inc)) 
 os.system(cmd) 
  
def timming_exe(cmd, inc = 60): 
 # enter用来安排某事件的发生时间,从现在起第n秒开始启动 
 schedule.enter(inc, 0, perform_command, (cmd, inc)) 
 # 持续运行,直到计划时间队列变成空为止 
 schedule.run() 
  
 
print("show time after 10 seconds:") 
timming_exe("echo %time%", 10)
Python 相关文章推荐
Python使用PDFMiner解析PDF代码实例
Mar 27 Python
python中reload(module)的用法示例详解
Sep 15 Python
Python爬虫实例_利用百度地图API批量获取城市所有的POI点
Jan 10 Python
详解django三种文件下载方式
Apr 06 Python
Python之pandas读写文件乱码的解决方法
Apr 20 Python
对TensorFlow的assign赋值用法详解
Jul 30 Python
使用python将excel数据导入数据库过程详解
Aug 27 Python
Python利用matplotlib绘制约数个数统计图示例
Nov 26 Python
torch 中各种图像格式转换的实现方法
Dec 26 Python
Python实现多线程下载脚本的示例代码
Apr 03 Python
Python监听键盘和鼠标事件的示例代码
Nov 18 Python
Python内置包对JSON文件数据进行编码和解码
Apr 12 Python
Python中使用pprint函数进行格式化输出的教程
Apr 07 #Python
利用QT写一个极简单的图形化Python闹钟程序
Apr 07 #Python
分析Python编程时利用wxPython来支持多线程的方法
Apr 07 #Python
Python中尝试多线程编程的一个简明例子
Apr 07 #Python
Python的Flask框架中Flask-Admin库的简单入门指引
Apr 07 #Python
用Python实现一个简单的线程池
Apr 07 #Python
浅谈Python程序与C++程序的联合使用
Apr 07 #Python
You might like
几种显示数据的方法的比较
2006/10/09 PHP
PHP HTML代码串截取代码
2008/12/29 PHP
PHP教程 变量定义
2009/10/23 PHP
php抓取https的内容的代码
2010/04/06 PHP
php eval函数用法总结
2012/10/31 PHP
利用PHP获取网站访客的所在地位置
2017/01/18 PHP
tp5.1 框架查询表达式用法详解
2020/05/25 PHP
JavaScript 捕获窗口关闭事件
2009/07/26 Javascript
jQuery中ajax的load()方法用法实例
2014/12/26 Javascript
JQuery.get提交页面不跳转的解决方法
2015/01/13 Javascript
JavaScript操作Cookie方法实例分析
2015/05/27 Javascript
Js类的静态方法与实例方法区分及jQuery拓展的两种方法
2016/06/03 Javascript
JavaScript基于DOM操作实现简单的数学运算功能示例
2017/01/16 Javascript
Easyui ueditor 整合解决不能编辑的问题(推荐)
2017/06/25 Javascript
vue.js项目中实用的小技巧汇总
2017/11/29 Javascript
sharp.js安装过程中遇到的问题总结
2020/04/02 Javascript
基于原生JS封装的Modal对话框插件的示例代码
2020/09/09 Javascript
JavaScript基于SVG的图片切换效果实例代码
2020/12/15 Javascript
linux环境下安装pyramid和新建项目的步骤
2013/11/27 Python
Python XML RPC服务器端和客户端实例
2014/11/22 Python
Python简单生成随机数的方法示例
2018/03/31 Python
Python中一个for循环循环多个变量的示例
2019/07/16 Python
Python如何在main中调用函数内的函数方式
2020/06/01 Python
Python如何实现机器人聊天
2020/09/10 Python
Python并发爬虫常用实现方法解析
2020/11/19 Python
python爬虫利用selenium实现自动翻页爬取某鱼数据的思路详解
2020/12/22 Python
CSS3实现苹果手机解锁的字体闪亮效果示例
2021/01/05 HTML / CSS
英国团购网站:Groupon英国
2017/11/28 全球购物
HealthElement海外旗舰店:新西兰大卖场
2018/02/23 全球购物
学生党员思想汇报
2013/12/28 职场文书
总经理岗位职责描述
2014/02/08 职场文书
法人授权委托书
2014/04/03 职场文书
永远是春天观后感
2015/06/12 职场文书
2016年教师节贺卡寄语
2015/12/04 职场文书
高考要来啦!用Python爬取历年高考数据并分析
2021/06/03 Python
Python虚拟环境virtualenv是如何使用的
2021/06/20 Python