Home > Backend Development > Python Tutorial > Introduction to methods of time processing and scheduled tasks in Python3 (with code)

Introduction to methods of time processing and scheduled tasks in Python3 (with code)

不言
Release: 2018-12-12 10:51:38
forward
2364 people have browsed it

This article brings you an introduction to time processing and timing tasks in Python3 (with code). It has certain reference value. Friends in need can refer to it. I hope it will be helpful to you.

No matter which programming language, time is definitely a very important part. Today we will take a look at how python handles time and python scheduled tasks

Note: This article is about The implementation of the python3 version is slightly different in the python2 version

1. Calculate the dates of tomorrow and yesterday

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

2. Calculate the previous time

Method 1 :

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

Method 2: Use modular operation to find the previous Friday

#! /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"))
Copy after login

3. Calculate the total playing time of the song

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

4. Repeat a command

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

5. Scheduled tasks

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

6. Use sched to implement periodic calls

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

The above is the detailed content of Introduction to methods of time processing and scheduled tasks in Python3 (with code). For more information, please follow other related articles on the PHP Chinese website!

Related labels:
source:segmentfault.com
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template