Модуль time
имеет функцию под названием asctime
, которая может быть полезна для вас:
>>> from time import asctime
>>> asctime()
'Tue Sep 21 17:49:42 2010'
Итак, вы можете включить что-то вроде следующего в ваш код:
sysTime = asctime()
timestamp = systime.split()[3]
separator = timestamp[2]
hour = timestamp.split(separator)[0]
while hour < 8:
# just wait
sysTime = asctime()
timestamp = systime.split()[3]
separator = timestamp[2]
hour = timestamp.split(separator)[0]
# now, it's just become 8:00 AM
while hour < 17: # until 5:00 PM
sysTime = asctime()
timestamp = systime.split()[3]
separator = timestamp[2]
hour = timestamp.split(separator)[0]
# start your thread to do whatever needs to be done
Запустите этот скрипт один раз и дайте ему продолжаться вечно.
Это ответ на вопрос @ user428862 о том, можно ли запускать с "часами> 8 и часами <17". Вот как код должен быть адаптирован для этой цели: </p>
while 1:
sysTime = asctime()
timestamp = systime.split()[3]
separator = timestamp[2]
hour = timestamp.split(separator)[0]
minute = timestamp.split(separator)[1]
if (hour > 8) and (hour<17 and minute<1):
# start your thread to do whatever needs to be done
Кроме того, мне просто приходит в голову, что я использовал разбиение строк и возвращает строки, поэтому hour
должно быть int(timestamp.split(separator)[0])
и так далее