這是一個未經測試的想法,並希望得到反饋。總的想法是根據當前時間檢查運行哪個程序,然後等到時間切換。
CODE:
from datetime import datetime
import subprocess
import sys
def check_time():
script_type = ''
wait_time = None
now = datetime.now()
if 5 <= now.hour <= 23:
script_type = 'ScriptA'
end_time = now.replace(hour=23, minute=59, second=59, microsecond=999)
wait_time = end_time-now
elif 0 <= now.hour <= 4:
script_type = 'ScriptB'
end_time = now.replace(hour=3, minute=59, second=59, microsecond=999)
wait_time = end_time-now
return script_type,wait_time.seconds
if __name__ == '__main__':
active_process = None
#Loop forever
while True:
#If there is an active process, terminate it
if active_process:
active_process.terminate()
active_process.kill()
#Start the correct script
script_type,wait_time = check_time()
if script_type == 'ScriptA':
active_process = subprocess.Popen([YOUR,COMMAND,A,HERE])
elif script_type == 'ScriptB':
active_process = subprocess.Popen([YOUR,COMMAND,B,HERE])
else:
sys.stderr.write('Some sort of error\n')
sys.exit(1)
#Wait until the next time switch to loop again
time.sleep(wait_time)
請評論有任何疑問或讓我知道它是否工作,如果你已經嘗試實現它。
你在運行什麼操作系統?它必須是一個Python腳本或從另一個腳本調用一個函數好嗎?你能提供關於你的腳本是什麼樣子或做什麼的更多信息嗎? – mitoRibo
除非您真的需要主腳本,否則我會使用任務調度實用程序(Unix:Cron,Windows:Task Scheduler,OS X:Launchd等)在適當的時間窗口內運行腳本A和B. – Apollo2020
@rbierman操作系統:linux ..我的主腳本是一個python腳本,它不僅僅是調用另一個函數。整個腳本。一個scriptA正在做臉部檢測,scriptB正在做運動檢測。 –