我知道我可以通过以下方法使线程休眠特定时间:
time.sleep(NUM)
如何让线程在凌晨2点之前进入睡眠状态?我需要做数学以确定直到凌晨2点的秒数吗?还是有一些库函数?
(是的,我知道Windows中的cron和等效系统,但是我想在python中正常睡眠我的线程,而不依赖于外部刺激或过程信号。)
这是一个半屁股解决方案,它不考虑时钟抖动或时钟调整。请参阅注释以了解解决方法。
import time import datetime # if for some reason this script is still running # after a year, we'll stop after 365 days for i in xrange(0,365): # sleep until 2AM t = datetime.datetime.today() future = datetime.datetime(t.year,t.month,t.day,2,0) if t.hour >= 2: future += datetime.timedelta(days=1) time.sleep((future-t).total_seconds()) # do 2AM stuff