[Python] Python实现多脚本处理定时运行

 
2869 4
小明Python 2023-1-7 22:10:45 | 显示全部楼层 |阅读模式
一、创建时间

首先可以通过python自带的datetime库获取本地时间,对于Pythpn时间序列想要更深入的了解可以参阅:Pandas处理时间序列数据操作详解

python3是自带datetime库的,他有自身代表时间的数据类型datetime。由此我们可以根据datetime数据结构进行运算,运用逻辑可以达到一定的时间控制。但首先我们需要拥有关于datetime数据类型的知识,好让我们创建我们想要的日期。



创建datetime很简单:

  1. from datetime import datetime as dt
  2. dt=dt(2023,1,7)
复制代码

这就创建了一个2023年1月7日的datetime数据类型。



[size=1em] 若想要转换为我们熟知的日期格式,我们可以使用strftime函数自定义格式,这里给出strftime函数的用法:
[size=1em]


[size=1em]
  1. dt.strftime('%m/%d/%Y %H:%M:%S')
复制代码


[size=1em]
二、设定时间

首先我们可以设定起始任务时间,假设我们的脚本自动在早上2点到6点运行一次,并且获取当天日期作为初始的开始执行日期:

  1. creatTime=datetime.time(2,0,0)
  2. closeTime=datetime.time(6,0,0)
  3. startDate=datetime.datetime.now()
  4. 我们需要获取当前时间和日期:

  5. #获取当前时间
  6. currentTime=datetime.now().time
  7. #获取当前日期
  8. currentTime=darerime.now().date
复制代码

然后我们只要规定每当本地时间在2点到6点这个范围,我们就执行脚本:

  1. if(startDate<=currentDate)and(creatTime<=currentTime<=closeTime):
  2.         #执行以下python脚本

  3.         print('---------')
  4.         print('执行成功')
复制代码

然后我们需要修改开始日期,让其+1天能够保持每天持续更新,这里使用到了时间推移函数:



[size=1em]

timedelta类表示为时间差,可直接实例化也可以由两个datetime进行相减操作得到。


可表示的时间差依次为:

days,seconds,microseconds,minutes,hours,weeks





[size=1em]
  1. startDate=(datetime.datetime.now()+datetime.timedelta(days=1))
复制代码

总代码如下:

  1. from datetime import datetime as dt
  2. import time
  3. creatTime=datetime.time(2,0,0)
  4. closeTime=datetime.time(6,0,0)
  5. startDate=datetime.datetime.now()
  6. while True:
  7.     #获取当前时间
  8.     currentTime=datetime.datetime.now().time
  9.     #获取当前日期
  10.     currentDate=datetime.datetime.now().date
  11.     if(startDate<=currentDate)and(creatTime<=currentTime<=closeTime):
  12.         #执行以下python脚本

  13.         print('---------')
  14.         print('执行成功')
  15.         #成功以后执行日期改为下一天
  16.         startDate=(datetime.datetime.now()+datetime.timedelta(days=1))
复制代码










小远实名认证 2023-1-8 15:19:35 来自手机 | 显示全部楼层
你的头像很鸡哥

点评

这是和英短大佬的同款头像  详情 回复 发表于 2023-1-8 18:58
小明Python 2023-1-8 18:58:35 | 显示全部楼层
小远 发表于 2023-1-8 15:19
你的头像很鸡哥

这是和英短大佬的同款头像
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

中国红客联盟公众号

联系站长QQ:5520533

admin@chnhonker.com
Copyright © 2001-2025 Discuz Team. Powered by Discuz! X3.5 ( 粤ICP备13060014号 )|天天打卡 本站已运行