Python3优雅操作,时间处理与定时任务

  

  无论哪种编程语言,时间肯定都是非常重要的部分,今天来看一下python如何来处理时间和python定时任务   

  

  注意:本篇所讲是python3版本的实现,在python2版本中的实现略有不同   

  

  
  

  

   Python3优雅操作,时间处理与定时任务”>
  </p>
  <p>
  1 .计算明天和昨天的日期
  </p>
  <前>
  # !,/usr/bin/env  python #=utf - 8编码#,获取今天,昨天和明天的日期#,引入datetime模块import  datetime 
  #计算今天的时间today =, datetime.date.today() #计算昨天的时间,yesterday =, today 作用;datetime.timedelta (=days  1) #计算明天的时间tomorrow =, today  +, datetime.timedelta (=days  1),
  #打印这三个时间打印(昨天,今天,明天)
  </>之前
  <p>
  2 .计算上一个的时间
  </p>
  <p>
  方法一:
  </p>
  <前>
  # !,/usr/bin/env  python #=utf - 8编码#,计算上一个的时间#引入datetime,日历两个模块import  datetime,日历
  ,,
  时间=last_friday  datetime.date.today (),
  时间=oneday  datetime.timedelta (=days  1),
  ,,,,
  while  last_friday.weekday (), !=, calendar.FRIDAY:,
  ,,,last_friday  -=, oneday 
  ,,,,
  print (last_friday.strftime (& # 39; %, % d - b % - % y # 39;))
  </>之前
  <p>
  方法二:借助模运算寻找上一个星期五
  </p>
  <前>
  # !,/usr/bin/env  python #=utf - 8编码#,借助模运算,可以一次算出需要减去的天数,计算上一个星期五#同样引入datetime,日历两个模块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),
  ,,,,
  打印(last_friday.strftime (“% d - b % - % Y之前   

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

  <前>   # !,/usr/bin/env  python #=utf - 8编码#,获取一个列表中的所有歌曲的播放时间之和,import  datetime    ,,,,   def  total_time(次):   ,,,td =, datetime.timedelta (0),   ,,,duration =,总和([datetime.timedelta (minutes =, m, seconds =, s), for  m, s 拷贝时间),,td),   ,,,return  duration    ,,,,   时间=times1  [(36) 2,,,,   ,,,,,,,,,(3),35),,   ,,,,,,,,,(45)3,,,,   ,,,,,,,,,),   times2 =, [(3, 0),,   ,,,,,,,,,(5,,13),   ,,,,,,,,,(12)4,,,,   ,,,,,,,,,(1,10),,   ,,,,,,,,,),   ,,,,   assert  total_time (times1),==, datetime.timedelta (0, 596),   assert  total_time (times2),==, datetime.timedelta (0, 815),   ,,,,   打印(“Tests 通过。\ n"   ,,,,,“First  test 总:,% s \ n"   ,,,,,“Second  test 总:,% s", %, (total_time (times1), total_time (times2)))   之前   

  4 .反复执行某个命令   

  <前>   # !,/usr/bin/env  python #=utf - 8编码#,以需要的时间间隔执行某个命令,   ,,,import ,, os    ,,,,   def  re_exe (cmd, inc =, 60):,   ,,,while 事实:,   ,,,,,,,os.system (cmd),,   ,,,,,,,time . sleep (inc),   ,,,,   re_exe (“echo  %时间%,,,5)   之前   

  5 .定时任务   

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

  6 .利用sched实现周期调用   

  <前>   # !,/usr/bin/env  python #编码=utf-8import 时间,操作系统,,sched    ,,,,   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null

Python3优雅操作,时间处理与定时任务