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 字符串中的字符倒转
Sep 06 Python
python2.7 mayavi 安装图文教程(推荐)
Jun 22 Python
Python3 加密(hashlib和hmac)模块的实现
Nov 23 Python
opencv python 基于KNN的手写体识别的实例
Aug 03 Python
Python中dict和set的用法讲解
Mar 28 Python
Python 旋转打印各种矩形的方法
Jul 09 Python
在PyTorch中Tensor的查找和筛选例子
Aug 18 Python
Pytorch抽取网络层的Feature Map(Vgg)实例
Aug 20 Python
python和JavaScript哪个容易上手
Jun 23 Python
带你学习Python如何实现回归树模型
Jul 16 Python
python爬虫多次请求超时的几种重试方法(6种)
Dec 01 Python
Python Matplotlib绘制动画的代码详解
May 30 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
SONY SRF-40W电路分析
2021/03/02 无线电
PHP中的traits简单使用实例
2015/05/13 PHP
WordPress中限制非管理员用户在文章后只能评论一次
2015/12/31 PHP
JQuery 小练习(实例代码)
2009/08/07 Javascript
Javascript 解疑
2009/11/11 Javascript
flexigrid 类似ext grid的JS表格代码
2010/07/17 Javascript
再说AutoComplete自动补全之实现原理
2011/11/05 Javascript
jQuery在IE下使用未闭合的xml代码创建元素时的Bug介绍
2012/01/10 Javascript
jQuery动态创建html元素的常用方法汇总
2014/09/05 Javascript
javascript实现10个球随机运动、碰撞实例详解
2015/07/08 Javascript
javascript实现列表切换效果
2016/05/02 Javascript
聊一聊jQuery插件uploadify使用方法
2016/08/24 Javascript
深入理解jQuery3.0的domManip函数
2016/09/01 Javascript
微信小程序 wxapp内容组件 progress详细介绍
2016/10/31 Javascript
前端JS面试中常见的算法问题总结
2016/12/23 Javascript
详解angularJs中关于ng-class的三种使用方式说明
2017/06/02 Javascript
Angular实现点击按钮后在上方显示输入内容的方法
2017/12/27 Javascript
react-native封装插件swiper的使用方法
2018/03/20 Javascript
关于Angularjs中自定义指令一些有价值的细节和技巧小结
2018/04/22 Javascript
Vue中"This dependency was not found"问题的解决方法
2018/06/19 Javascript
深入了解JavaScript代码覆盖
2019/06/13 Javascript
vue 出现data-v-xxx的原因及解决
2020/08/04 Javascript
python中日期和时间格式化输出的方法小结
2015/03/19 Python
Python中动态创建类实例的方法
2017/03/24 Python
Python爬虫包BeautifulSoup学习实例(五)
2018/06/17 Python
教你如何编写、保存与运行Python程序的方法
2019/07/12 Python
python实现连连看辅助(图像识别)
2020/03/25 Python
Python定时器线程池原理详解
2020/02/26 Python
python+requests接口自动化框架的实现
2020/08/31 Python
python调用百度API实现人脸识别
2020/11/17 Python
flask项目集成swagger的方法
2020/12/09 Python
五分钟学会怎么用python做一个简单的贪吃蛇
2021/01/12 Python
中专生自荐信
2013/10/12 职场文书
致跳远运动员加油稿
2014/02/11 职场文书
客服专员岗位职责
2014/02/28 职场文书
pytorch--之halfTensor的使用详解
2021/05/24 Python