9
パイプとしてしか実行されない小さなPythonユーティリティがあります。私はそれがスタンドアロンで実行されているときにヘルプメッセージを印刷したい。プロセスがパイプとして使用されているかどうかをプロセスがどのように知ることができるか。 sys.stdin
とsys.__stdin__
を比較すると機能しません。プロセスがパイプとして実行されているかどうかを確認してください。
パイプとしてしか実行されない小さなPythonユーティリティがあります。私はそれがスタンドアロンで実行されているときにヘルプメッセージを印刷したい。プロセスがパイプとして使用されているかどうかをプロセスがどのように知ることができるか。 sys.stdin
とsys.__stdin__
を比較すると機能しません。プロセスがパイプとして実行されているかどうかを確認してください。
あなたはisatty
を使用することができます。
if sys.stdin.isatty():
標準入力が大体それがパイプ外で、直接使われている意味のttyである場合、それはTrue
になります。
また、逆の場合は 'if sys.stdout.isatty()'となります。 – isaaclw
ヒント:CI環境ala travis、jenkins、またはgitlab-ciでPythonを起動すると、 'sys.stdin.isatty()'は常に 'False'になることがあります。 –