2015-12-23 610 views
-2

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

import datetime 

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

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

你需要在你的脚本中这样做,或者你可以使用cronjob每小时启动一个脚本? – jonrsharpe

+0

Python会更好。我已经尝试了相同的cronjob,这非常简单。我也可以在Windows中使用相同的程序。 – jOSe

+0

然后您应该在Windows上使用适当的调度程序 - 这比在下一小时的顶部“等待”Python循环要容易得多。 – jonrsharpe

回答

0

你需要睡觉等待“圆圆”的时候,如果现在是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) 
+0

对不起,您需要在此行之前加上标签:sleep(60 * 60) –

0

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

0 * * * * python script.py 
+0

Windows不支持“cron”。所以只有Python可以做得很好。 :) – jOSe

+1

所以你想无限运行一个Python脚本?我会在Windows中查找任务计划。 – Saksow

相关问题