我每天运行一次Python脚本4次,我想成为一个精确的,直到第二个时间。我已经在我的Mac上使用launchd做了一段时间,并且脚本已经运行了几乎我想要的第二个。例如,我已将launchd设置为在凌晨6点开始运行脚本,并且脚本通常在早上6点开始运行,加上100或200毫秒;正是我想要的。但是,由于一些未知的原因(可能是刚刚开始发生的OS X更新?),脚本现在开始运行,从早上6点开始运行几秒到几秒钟,对于脚本的最终目的。我现在正在考虑一种更健壮的方法来确保我的脚本的主要部分在我想要的第二个时间运行是在早上6点之前的某个时间启动脚本,也许是在早上5:59,然后在脚本中让它每秒检查一次(或更多),然后当我希望脚本的其余部分运行的确切秒时,脚本的其余部分将运行。所以,我的问题是,我如何在脚本本身中运行一个循环,或者其他任何循环,然后在完全(或几乎精确)的时刻,例如早上6:00:00启动脚本的其余部分?
import datetime
import time
##### build in a timer to make sure the script starts to execute at the exact time and second, i.e. 6am, 10am, 2pm, and 6pm, PDT
secs = datetime.datetime.now().strftime("%S.%f")
secs = float(secs)
sleep_secs = 60 - secs
time.sleep(sleep_secs)