我想讓我的腳本擁有2個行爲,一個是作爲計劃任務啓動的,另一個是手動啓動的行爲。我如何測試互動性?如何檢查Python腳本是否以交互方式啓動?
編輯:這可能是一個cron作業,或通過Windows批處理文件,通過計劃的任務啓動。
我想讓我的腳本擁有2個行爲,一個是作爲計劃任務啓動的,另一個是手動啓動的行爲。我如何測試互動性?如何檢查Python腳本是否以交互方式啓動?
編輯:這可能是一個cron作業,或通過Windows批處理文件,通過計劃的任務啓動。
如果你想知道,如果你從一個終端讀取(尚不清楚,如果這是一個足以區分,請說明),可以使用
sys.stdin.isatty()
您應該簡單地添加一個命令行開關在計劃任務中,並在腳本中檢查它,根據需要修改行爲。顯式比隱式更好。
此設計的一個好處是:無論您如何實際調用腳本,您都可以測試兩種行爲。
同意。通常使用awesomeApp運行腳本,並使用awesomeApp - 批處理作爲批處理作業。 – scvalex 2009-08-16 19:07:17
我只是添加一個命令行開關,當你用cron的稱之爲:
蟒蛇yourscript.py -scheduled
然後在你的程序
import sys
if "-scheduled" in sys.argv:
#--non-interactive code--
else:
#--interactive code--
至少使用傳統的「 - 計劃」 – 2009-10-19 19:33:24
「計劃任務」 ?由什麼軟件開始?什麼平臺? 「手動?」從IDLE?從命令行?什麼平臺?什麼外殼? – 2009-08-16 18:50:10
[檢查Python腳本中的交互式shell]可能的重複(https://stackoverflow.com/questions/6108330/checking-for-interactive-shell-in-a-python-script) – ideasman42 2017-08-29 06:07:58