本文已参与「新人创作礼」活动,一起开启掘金创作之路。
前言
管理多脚本,要实现大量统计计算以及大量脚本进行统计,定时运行并反馈结果是很多大数据项目场景中十分常见的,就该问题本篇文章提供思路方法以及部分代码。
一、创建时间
首先可以通过python自带的datetime库获取本地时间,对于Pythpn时间序列想要更深入的了解可以参阅:一文速学-Pandas处理时间序列数据操作详解。
python3是自带datetime库的,他有自身代表时间的数据类型datetime。由此我们可以根据datetime数据结构进行运算,运用逻辑可以达到一定的时间控制。但首先我们需要拥有关于datetime数据类型的知识,好让我们创建我们想要的日期。
创建datetime很简单:
from datetime import datetime as dt
dt=dt(2022,5,23)
这就创建了一个2022年5月23日的datetime数据类型。
若想要转换为我们熟知的日期格式,我们可以使用strftime函数自定义格式,这里给出strftime函数的用法:
dt.strftime('%m/%d/%Y %H:%M:%S')
二、设定时间
首先我们可以设定起始任务时间,假设我们的脚本自动在早上2点到6点运行一次,并且获取当天日期作为初始的开始执行日期:
creatTime=datetime.time(2,0,0)
closeTime=datetime.time(6,0,0)
startDate=datetime.datetime.now()
我们需要获取当前时间和日期:
扫描二维码关注公众号,回复:
14427297 查看本文章
#获取当前时间
currentTime=datetime.now().time
#获取当前日期
currentTime=darerime.now().date
然后我们只要规定每当本地时间在2点到6点这个范围,我们就执行脚本:
if(startDate<=currentDate)and(creatTime<=currentTime<=closeTime):
#执行以下python脚本
print('---------')
print('执行成功')
然后我们需要修改开始日期,让其+1天能够保持每天持续更新,这里使用到了时间推移函数:
timedelta类表示为时间差,可直接实例化也可以由两个datetime进行相减操作得到。
可表示的时间差依次为: days,seconds,microseconds,minutes,hours,weeks
startDate=(datetime.datetime.now()+datetime.timedelta(days=1))
总代码如下:
from datetime import datetime as dt
import time
creatTime=datetime.time(2,0,0)
closeTime=datetime.time(6,0,0)
startDate=datetime.datetime.now()
while True:
#获取当前时间
currentTime=datetime.datetime.now().time
#获取当前日期
currentDate=datetime.datetime.now().date
if(startDate<=currentDate)and(creatTime<=currentTime<=closeTime):
#执行以下python脚本
print('---------')
print('执行成功')
#成功以后执行日期改为下一天
startDate=(datetime.datetime.now()+datetime.timedelta(days=1))
点关注,防走丢,如有纰漏之处,请留言指教,非常感谢
以上就是本期全部内容。我是fanstuck ,有问题大家随时留言讨论 ,我们下期见。