私のスクリプトには、スケジュールされたタスクとして開始された場合と手動で開始された場合の 2 つの動作が必要です。インタラクティブ性をテストするにはどうすればよいですか?
編集: これは、スケジュールされたタスクを介して、cron ジョブであるか、Windows バッチ ファイルによって開始される可能性があります。
私のスクリプトには、スケジュールされたタスクとして開始された場合と手動で開始された場合の 2 つの動作が必要です。インタラクティブ性をテストするにはどうすればよいですか?
編集: これは、スケジュールされたタスクを介して、cron ジョブであるか、Windows バッチ ファイルによって開始される可能性があります。
スケジュールされたタスクにコマンド ライン スイッチを追加し、スクリプトでそれを確認して、必要に応じて動作を変更するだけです。明示的は暗黙的よりも優れています。
この設計の利点の 1 つは、スクリプトを実際にどのように呼び出したかに関係なく、両方の動作をテストできることです。
端末から読んでいるかどうかを知りたい場合(それで十分な区別であるかどうかは不明です。明確にしてください)、使用できます
sys.stdin.isatty()
cron で呼び出すときに、コマンド ライン スイッチを追加するだけです。
python yourscript.py -予定
次に、プログラムで
import sys
if "-scheduled" in sys.argv:
#--non-interactive code--
else:
#--interactive code--