2015-12-23 591 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

相關問題