Python中每一小时执行一次Exectue函数

时间:2015-12-23 11:35:47

标签: python-2.7

我想每隔一小时执行一次程序。我可以使用time.sleep函数来延迟间隔但是,如果执行程序让我们在16:30说,那么该函数将只在17:30执行。但我需要在17:00,18:00等执行该功能。

import datetime

def onehour(value):
   print "%d Hours" % value

now = datetime.datetime.now()
oncehour(now.hour)

2 个答案:

答案 0 :(得分:1)

你需要睡觉等待"回合"时间,如果现在是12:23,比睡觉60-23 = 37分钟,而不是跑你的,比睡一小时。在这里你可以这样写:

from time import sleep
import datetime
sleep(60*(60-datetime.datetime.now().minute))
while True:
    do_smth()
sleep(60*60)

答案 1 :(得分:0)

Cron工作怎么样?您可以在Python文件中编写代码,然后从crontab中的命令行调用它:

0 * * * * python script.py