2010-11-24 27 views
9

パイプとしてしか実行されない小さなPythonユーティリティがあります。私はそれがスタンドアロンで実行されているときにヘルプメッセージを印刷したい。プロセスがパイプとして使用されているかどうかをプロセスがどのように知ることができるか。 sys.stdinsys.__stdin__を比較すると機能しません。プロセスがパイプとして実行されているかどうかを確認してください。

答えて

13

あなたはisattyを使用することができます。

if sys.stdin.isatty(): 

標準入力が大体それがパイプ外で、直接使われている意味のttyである場合、それはTrueになります。

+2

また、逆の場合は 'if sys.stdout.isatty()'となります。 – isaaclw

+0

ヒント:CI環境ala travis、jenkins、またはgitlab-ciでPythonを起動すると、 'sys.stdin.isatty()'は常に 'False'になることがあります。 –

関連する問題