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实现文本去重且不打乱原本顺序
Jan 26 Python
Python中基础的socket编程实战攻略
Jun 01 Python
Python字符串拼接的几种方法整理
Aug 02 Python
Python使用文件锁实现进程间同步功能【基于fcntl模块】
Oct 16 Python
Win8.1下安装Python3.6提示0x80240017错误的解决方法
Jul 31 Python
对numpy中的transpose和swapaxes函数详解
Aug 02 Python
Python3爬虫教程之利用Python实现发送天气预报邮件
Dec 16 Python
使用python实现抓取腾讯视频所有电影的爬虫
Apr 15 Python
python过滤中英文标点符号的实例代码
Jul 15 Python
python向图片里添加文字
Nov 26 Python
python 链接sqlserver 写接口实例
Mar 11 Python
Python 流媒体播放器的实现(基于VLC)
Apr 28 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
php中filter函数验证、过滤用户输入的数据
2014/01/13 PHP
一个不易被发现的PHP后门代码解析
2014/07/05 PHP
PHP单例模式详解及实例代码
2016/12/21 PHP
PHP simplexml_import_dom()函数讲解
2019/02/03 PHP
PHP 模拟登陆功能实例详解
2019/09/10 PHP
JavaScript 基于原型的对象(创建、调用)
2009/10/16 Javascript
EXTJS内使用ACTIVEX控件引起崩溃问题的解决方法
2010/03/31 Javascript
javascript使用百度地图api和html5特性获取浏览器位置
2014/01/10 Javascript
JavaScript识别网页关键字并进行描红的方法
2015/11/09 Javascript
简述JavaScript提交表单的方式 (Using JavaScript Submit Form)
2016/03/18 Javascript
AngularJs基于角色的前端访问控制的实现
2016/11/07 Javascript
浅析使用BootStrap TreeView插件实现灵活配置快递模板
2016/11/28 Javascript
如何通过非数字与字符的方式实现PHP WebShell详解
2017/07/02 Javascript
Angular搜索 过滤 批量删除 添加 表单验证功能集锦(实例代码)
2017/10/25 Javascript
微信小程序倒计时功能实现代码
2017/11/09 Javascript
微信小程序chooseImage的用法(从本地相册选择图片或使用相机拍照)
2018/08/22 Javascript
element-ui循环显示radio控件信息的方法
2018/08/24 Javascript
如何封装了一个vue移动端下拉加载下一页数据的组件
2019/01/06 Javascript
ES6模板字符串和标签模板的应用实例分析
2019/06/25 Javascript
详解ECMAScript2019/ES10新属性
2019/12/06 Javascript
详解Python网络爬虫功能的基本写法
2016/01/28 Python
详解python实现识别手写MNIST数字集的程序
2018/08/03 Python
Python实现 PS 图像调整中的亮度调整
2019/06/28 Python
详解如何用python实现一个简单下载器的服务端和客户端
2019/10/28 Python
使用HTML5和CSS3制作一个模态框的示例
2018/03/07 HTML / CSS
计算机应届毕业生自荐信范文
2014/02/23 职场文书
政工例会汇报材料
2014/08/26 职场文书
家庭教育的心得体会
2014/09/01 职场文书
店铺转让协议书
2014/12/02 职场文书
拾金不昧表扬信
2015/01/16 职场文书
表扬通报怎么写
2015/01/16 职场文书
新员工试用期自我评价
2015/03/10 职场文书
活动总结书怎么写
2015/05/11 职场文书
新闻稿标题
2015/07/18 职场文书
Mysql排查分析慢sql之explain实战案例
2022/04/19 MySQL
Win10服务主机占用内存怎么办?Win10服务主机进程占用大量内存解决方法
2022/09/23 数码科技