Python3中时间处理与定时任务的方法介绍(附代码)


本文摘自php中文网,作者不言,侵删。

本篇文章给大家带来的内容是关于Python3中时间处理与定时任务的方法介绍(附代码),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。

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

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

1、计算明天和昨天的日期

1

2

3

4

5

6

7

8

9

10

11

12

13

#! /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、计算上一个的时间

方法一:

1

2

3

4

5

6

7

8

9

10

11

12

13

#! /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'))

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

1

2

3

4

5

6

7

8

9

10

11

12

13

14

#! /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、计算歌曲的总播放时间

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

#! /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、反复执行某个命令

1

2

3

4

5

6

7

8

9

10

11

12

#! /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、定时任务

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

#! /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实现周期调用

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

#! /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)

以上就是Python3中时间处理与定时任务的方法介绍(附代码)的详细内容,更多文章请关注木庄网络博客!!

相关阅读 >>

如何创建不存在的目录结构

Python访问限制私有还是公有的介绍(附示例)

用matplotlib如何绘制3d图形

Python怎么隔一个字符输出

Python常用运算符有哪些?

Python的系统学习实例

Python中sys模块的详细介绍(代码示例)

如何编写高效Python的代码

Python安装路径怎么找

使用Python开发简单的小游戏

更多相关阅读请进入《Python》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...