#python
#python
Вопрос:
Я не уверен, возможно ли это, но я имею дело с datetime в python, поэтому я знаю, что это может сбить с толку.
У меня есть скрипт на python, который запускается каждые 5 минут и собирает данные от 5 до 3 минут. Это работает нормально, если скрипт выполняется в течение 00 секунд
Я не уверен, возможно ли это, но я имею дело с datetime в python, поэтому я знаю, что это может сбить с толку.
У меня есть скрипт на python, который запускается каждые 5 минут и собирает данные от 5 до 3 минут. Это работает нормально, если скрипт выполняется в течение 00 секунд
Комментарии:
1.
This is working fine if the script runs bang on 00 seconds
что это значит?2. посмотрите на пример ниже, если скрипт выполняется в течение 00 секунд. я привел примеры ниже, чтобы помочь
Ответ №1:
Создайте условный оператор, который проверяет, заканчивается ли время на ’00’, используя функцию таймера для запуска кода каждую секунду. Затем, когда время будет таким, каким вы хотите, выполните свой код.
Комментарии:
1. можете ли вы показать мне, потому что я много борюсь с этим.
Ответ №2:
Обычно я использую по модулю интересующий меня интервал, поэтому в вашем случае 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
...
Комментарии:
1. извините, я этого не понимаю, можете ли вы показать мне, используя мой код выше? изо всех сил над этим много