2013-06-02 77 views
2

這可能非常容易,但是如何獲得Python代碼來循環時間y和z之間的每個x分鐘?如何獲得python代碼來循環時間y和z之間的每個x分鐘?

例如,如果我希望我的腳本在午夜(00:00)至晚上10點(22:00)之間運行,則每5分鐘循環一次。

+0

這看起來像是作業系統的調度程序,而不是腳本本身。 –

+0

嘿,感謝您的評論,有問題的腳本將分佈在不同的位置運行,這就是爲什麼我特別想運行它循環它的代碼。 – AEA

回答

8

試試標準庫中的sched module。這裏是調用一個函數每秒一次,在未來的首發五秒鐘,在未來結束十秒一個例子:

from sched import scheduler 
from time import time, sleep 

s = scheduler(time, sleep) 

def run_periodically(start, end, interval, func): 
    event_time = start 
    while event_time < end: 
     s.enterabs(event_time, 0, func,()) 
     event_time += interval 
    s.run() 

if __name__ == '__main__': 

    def say_hello(): 
     print 'hello'  

    run_periodically(time()+5, time()+10, 1, say_hello) 

或者,你可以用threading.Timer工作,但你需要做更多的工作讓它在特定時間開始,每五分鐘運行一次,並在固定時間停止。

+0

嗨雷蒙德謝謝你的回答,不幸的是,我已經在youtube教程後面使用了python約1周,我發現python文檔頁面非常無益(當前),因爲它是由更有經驗的編程人員爲更有經驗的編程人員編寫的。我希望他們會對這個例子的每一行發表評論,以解釋它在做什麼。 :( – AEA

+0

我到目前爲止創建的代碼,可以很好地抓取一個網站並解析我想要的數據,但是我還沒有對這個代碼進行多線程化處理,但我不確定它需要什麼(時間會告訴) – AEA

+0

@AEA Doug Hellman的版本將給你一個更加溫和的Python標準庫模塊介紹:http://pymotw.com/2/sched/index.html#module-sched –

相關問題