首页 > 编程语言 >Python3 - 时间处理与定时任务

Python3 - 时间处理与定时任务

时间:2023-08-19 14:33:35浏览次数:60  
标签:python cmd datetime 任务 today time 定时 Python3 inc

无论哪种编程语言,时间肯定都是非常重要的部分,今天来看一下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, sin 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

17

18

19

20

21


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

18

19

20

21

22


#! /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,cmd,datetime,任务,today,time,定时,Python3,inc
From: https://blog.51cto.com/u_16191847/7149490

相关文章

  • Advanced-control timer 高级定时器 时钟源
    Advanced-controltimer TIM1TIM8TIM8isnotavailableinSTM32F411xC/E.Clockselection时钟选择Internalclock(CK_INT)内部时钟(CK_INT),来自APB总线Externalclockmode1:externalinputpin外部时钟模式1:外部输入引脚来自CH1,CH2ED:双边沿检测(e......
  • 定时器之PWM
      voidPWM_Init(void){RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2,ENABLE);RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE);GPIO_PinRemapConfig(GPIO_PartialRemap1_TIM2,......
  • 如何设计一个定时任务?
    一.日常工作中使用到的框架?单机:Quartz,SpringSchedule等框架;分布式:SchedulerX,ElasticJob,xxlJob等分布式任务调度二.定时任务的作用简单来讲为某个时间执行某些具体的任务1.数据获取 2.财务账目核对3.定时数据备份4.定时更新数据平台的数据三.定时任务可以使用什么数......
  • .NET桌面程序如何设置任务栏图标右键菜单中的名称
    右键任务栏中应用程序图标时会显示程序名称,例如:这里显示的并不是程序文件名DingTalk,而是文件属性中详细信息选显卡下的“文件说明”。在.NET桌面程序中,是通过修改程序集名称(AssemblyTitle)来设置该值,c++程序则是添加版本信息设置FileDescription属性。但是,这个属性和应用程序图......
  • windows程序如何设置开机自启动以及定时重启
    1. 通过shell:StartUp将程序设置为开机自启动的状态  2. 设置windows系统为无需登录模式 1、开始-运行,或点击Cortana搜索框,输入netplwiz,打开用户账户面板;2、点击当前使用的用户名,去掉“要使用本计算机,用户必须输入用户名和密码”复选框;没有以上复选项的解决方法 ......
  • 爬虫新手变高手!快速完成批量爬虫采集任务
    大家好!作为一名专业的爬虫程序员,我今天要和大家分享一些关于如何快速完成批量爬虫采集任务的进阶技巧。如果你已经掌握了基本的爬虫知识,那么这些技巧将帮助你更快地完成采集任务。1.数据去重——避免重复采集和冗余数据在大规模数据采集任务中,经常会出现重复的数据和冗余的信息。为......
  • 使用油猴脚本,自动填写Jira任务
    公司使用Jira作为日常管理,所以Jira填写就比较频繁了,我做了一个示例,剩下的功能就各位自己添加吧//==UserScript==//@nameJira填写//@namespacehttp://tampermonkey.net///@version0.1//@description自动填充,每周填写的任务计划//@author......
  • 定时同步数据优化
    定时同步数据优化前言定时任务在系统中并不少见,主要目的是用于需要定时处理数据或者执行某个操作的情况下,如定时关闭订单,或者定时备份。而常见的定时任务分为2种,第一种:固定时间执行,如:每分钟执行一次,每天执行一次。第二种:延时多久执行,就是当发生一件事情后,根据这件时间发生的时间......
  • java 每天23点定时删除某个Folder下的文件
    importjava.io.IOException;importjava.nio.file.*;importjava.time.LocalDate;importjava.time.LocalDateTime;importjava.time.LocalTime;importjava.util.concurrent.Executors;importjava.util.concurrent.ScheduledExecutorService;importjava.util.concu......
  • 在 Spring Boot 中通过定时任务实现本地 Redis 数据同步到阿里云 Redis
    添加依赖在项目的pom.xml文件中,添加SpringBootStarter和Redis相关的依赖。<!--SpringBootStarter--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter</artifactId></dependency>......