2

私のスクリプトには、スケジュールされたタスクとして開始された場合と手動で開始された場合の 2 つの動作が必要です。インタラクティブ性をテストするにはどうすればよいですか?

編集: これは、スケジュールされたタスクを介して、cron ジョブであるか、Windows バッチ ファイルによって開始される可能性があります。

4

3 に答える 3

11

スケジュールされたタスクにコマンド ライン スイッチを追加し、スクリプトでそれを確認して、必要に応じて動作を変更するだけです。明示的は暗黙的よりも優れています。

この設計の利点の 1 つは、スクリプトを実際にどのように呼び出したかに関係なく、両方の動作をテストできることです。

于 2009-08-16T18:55:54.647 に答える
7

端末から読んでいるかどうかを知りたい場合(それで十分な区別であるかどうかは不明です。明確にしてください)、使用できます

sys.stdin.isatty()
于 2009-08-16T18:53:11.797 に答える
0

cron で呼び出すときに、コマンド ライン スイッチを追加するだけです。

python yourscript.py -予定

次に、プログラムで

import sys

if "-scheduled" in sys.argv:
    #--non-interactive code--
else: 
    #--interactive code--
于 2009-08-17T03:41:55.483 に答える