收集数据

时间:2019-04-12 10:16:31

标签: python

我不确定是否可行,但是我正在使用python处理datetime,所以我知道它会引起混淆。

我有一个Python脚本,每5分钟运行一次,并在5分钟至3分钟之间收集数据。如果脚本在00秒上运行,则可以正常工作

我不确定是否可行,但是我正在使用python处理datetime,所以我知道它会引起混淆。

我有一个Python脚本,每5分钟运行一次,并在5分钟至3分钟之间收集数据。如果脚本在00秒上运行,则可以正常工作

2 个答案:

答案 0 :(得分:0)

使用the Timer function每秒运行一次代码,创建一个条件语句来检查时间是否以“ 00”结尾。然后,在您需要时间时,执行代码。

答案 1 :(得分:0)

我通常要做的是对感兴趣的时间间隔取模,因此在您的情况下为15分钟:

>>> t = time.time()
>>> t
1555065206.8165069
>>> t += 15*60-1
>>> t -= t % (15*60)
>>> t
1555065900.0
>>> time.localtime(t)
time.struct_time(tm_year=2019, tm_mon=4, tm_mday=12, tm_hour=12, tm_min=45, tm_sec=0, tm_wday=4, tm_yday=102, tm_isdst=1)

所以您可以做的事情是这样的:

import time

while True:
    t = time.time()
    t += 15*60-1
    t -= t % (15*60)
    print(time.localtime(t))
    print('printing again in 5 minutes')
    time.sleep(5*60)

那应该输出类似:

time.struct_time(tm_year=2019, tm_mon=4, tm_mday=12, tm_hour=16, tm_min=0, tm_sec=0, tm_wday=4, tm_yday=102, tm_isdst=1)
printing again in 5 minutes
time.struct_time(tm_year=2019, tm_mon=4, tm_mday=12, tm_hour=16, tm_min=0, tm_sec=0, tm_wday=4, tm_yday=102, tm_isdst=1)
printing again in 5 minutes
time.struct_time(tm_year=2019, tm_mon=4, tm_mday=12, tm_hour=16, tm_min=15, tm_sec=0, tm_wday=4, tm_yday=102, tm_isdst=1)
printing again in 5 minutes
...