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脚本实现代码行数统计代码分享
Mar 10 Python
Python实现删除文件但保留指定文件
Jun 21 Python
python中异常捕获方法详解
Mar 03 Python
Python用户推荐系统曼哈顿算法实现完整代码
Dec 01 Python
Laravel框架表单验证格式化输出的方法
Sep 25 Python
python中count函数简单用法
Jan 05 Python
python实现音乐播放器 python实现花框音乐盒子
Feb 25 Python
tensorflow 动态获取 BatchSzie 的大小实例
Jun 30 Python
使用python-cv2实现Harr+Adaboost人脸识别的示例
Oct 27 Python
如何在pycharm中安装第三方包
Oct 27 Python
python中PyQuery库用法分享
Jan 15 Python
Python编程编写完善的命令行工具
Sep 15 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字符串的比较函数strcmp()与strcasecmp()的使用详解
2013/05/15 PHP
php获取url参数方法总结
2014/11/13 PHP
PHP间隔一段时间执行代码的方法
2014/12/02 PHP
PHP实现的构造sql语句类实例
2016/02/03 PHP
CodeIgniter连贯操作的底层原理分析
2016/05/17 PHP
js indexOf()定义和用法
2012/10/21 Javascript
jquery实现的图片点击滚动效果
2014/04/29 Javascript
JavaScript中最简洁的编码html字符串的方法
2014/10/11 Javascript
超精准的javascript验证身份证号的具体实现方法
2015/11/18 Javascript
简单的JS时钟实例讲解
2016/01/13 Javascript
javascript实现简单计算器效果【推荐】
2016/04/19 Javascript
bootstrap模态框消失问题的解决方法
2016/12/02 Javascript
微信小程序 表单Form实例详解(附源码)
2016/12/22 Javascript
浅谈javascript中的数据类型转换
2016/12/27 Javascript
获取今天,昨天,本周,上周,本月,上月时间(实例分享)
2017/01/04 Javascript
Echarts在Taro微信小程序开发中的踩坑记录
2020/11/09 Javascript
[38:39]完美世界DOTA2联赛循环赛 IO vs GXR BO2第二场 11.04
2020/11/05 DOTA
python读取html中指定元素生成excle文件示例
2014/04/03 Python
python网络编程学习笔记(一)
2014/06/09 Python
Python中的with语句与上下文管理器学习总结
2016/06/28 Python
使用apiDoc实现python接口文档编写
2019/11/19 Python
使用keras2.0 将Merge层改为函数式
2020/05/23 Python
python判断变量是否为列表的方法
2020/09/17 Python
Emma Bridgewater官网:英国餐具制造商
2019/11/24 全球购物
军训生自我鉴定范文
2013/12/27 职场文书
新员工欢迎词
2014/01/12 职场文书
幼儿园家长评语大全
2014/04/16 职场文书
天猫活动策划方案
2014/08/21 职场文书
爱护公共设施演讲稿
2014/09/13 职场文书
城市轨道交通工程职业生涯规划书范文
2014/09/16 职场文书
县政府领导班子“四风”方面突出问题整改措施
2014/09/23 职场文书
2014年党支部工作总结
2014/11/13 职场文书
意向协议书
2015/01/27 职场文书
整改通知书
2015/04/20 职场文书
Python基础之字符串格式化详解
2021/04/21 Python
Windows server 2012 R2 安装IIS服务器
2022/04/29 Servers