2010-09-21 72 views
-2

上跟進,了Python腳本運行在X:00

With python: intervals at x:00 repeat

使用線程,我怎樣才能得到一個腳本來運行開始日上午8:00停在下午5:00

運行

該解決方案應該蟒內進行編碼,並且是便攜式的

TIA

+0

這個功課是?如果是這樣,請添加適當的標籤。 – 2010-09-21 19:48:29

+0

它沒有作業,我有解決方案,在SQL - 觸發器內工作正常,現在需要python解決方案。 – Merlin 2010-09-21 20:02:59

回答

3

time模塊有一個叫asctime功能,這可能對您有用:

>>> from time import asctime 
>>> asctime() 
'Tue Sep 21 17:49:42 2010' 

所以,你可以合併類似下面的到你的代碼:

sysTime = asctime() 
timestamp = systime.split()[3] 
separator = timestamp[2] 
hour = timestamp.split(separator)[0] 
while hour < 8: 
    # just wait 
    sysTime = asctime() 
    timestamp = systime.split()[3] 
    separator = timestamp[2] 
    hour = timestamp.split(separator)[0] 

# now, it's just become 8:00 AM 
while hour < 17: # until 5:00 PM 
    sysTime = asctime() 
    timestamp = systime.split()[3] 
    separator = timestamp[2] 
    hour = timestamp.split(separator)[0] 

    # start your thread to do whatever needs to be done 

啓動這個腳本關閉一次,讓它永遠持續運行。

這是響應@ user428862的問題,問這是否可以用「小時> 8小時和17 <」運行。這是代碼將如何需要適合用於這一目的:

while 1: 
    sysTime = asctime() 
    timestamp = systime.split()[3] 
    separator = timestamp[2] 
    hour = timestamp.split(separator)[0] 
    minute = timestamp.split(separator)[1] 

    if (hour > 8) and (hour<17 and minute<1): 
     # start your thread to do whatever needs to be done 

而且,它只是發生,我認爲我已經imploying字符串分割和返回字符串,所以hour應該是​​3210等

+0

考慮到cron不是OP的選項,因此這是隨機獲得的。 – Sean 2010-09-21 23:01:53

+0

VBA和Sql中的同一種邏輯,thx。腳本從上到下運行的頻率如何。 「小時> 8小時<17:」工作嗎?另外,如果我需要,我將如何修改爲8:30。 – Merlin 2010-09-22 15:57:01

+0

日Thnx,用於更新... – Merlin 2010-09-22 16:35:28

2

使用cron。如果在windows上使用windows task scheduler

+0

解決方案不能移動....謝謝 – Merlin 2010-09-21 19:39:11

+3

那怎麼樣不便攜? Cron適用於所有平臺。 – nosklo 2010-09-21 20:31:49

0

在cron和你需要運行腳本啓動日上午8:00停在下午5:00 使用的crontab在linux -e命令運行。 並加入這行代碼

* 8 * * * /YOUR/PATH/SCRIPT 

,並停止其在下午5點,在這個例子中,我們將在下午5點

* 17 * * * killall -9 /usr/bin/python 

殺死所有的Python程序,你可以用的crontab檢查的crontab - lcrontab -r重置爲默認值(不會執行任何命令)