Сбор данных

#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. извините, я этого не понимаю, можете ли вы показать мне, используя мой код выше? изо всех сил над этим много