スクリプトをパイプしているときと違うときに振る舞いをする必要があるときと、普通に呼び出されているときを区別するにはどうすればいいですか?これは、ぶら下がりを避けるために必要です。私はただstdin
が空であるかどうかをチェックすることについて話しているわけではありません。Python 3でスクリプトがパイプされているかどうかを確認します
0
A
答えて
-1
あなたのプログラムの入力がttyに接続されている場合は、あなたのユースケースに応じて、役立つ可能性がある、テストすることができます。 $ python -c 'import sys; print(sys.stdin.isatty())' True $ echo hi | python -c 'import sys; print(sys.stdin.isatty())' False $ python -c 'import sys; print(sys.stdin.isatty())' < foo False
+0
これは、パイプからの入力リダイレクション(ファイルからの入力など)に誤検出をもたらします。 – user2357112
は、なぜあなたは、具体的入力が* *パイプであるかどうかを気にしていますか?あなたのプログラムが異なった振る舞いをする必要のあるパイプについてはどうですか?あなたのプログラムは 'python yourprog.py
user2357112
@ user2357112これは本当に知る必要はありますか?とにかく私はなぜ私がしたいのか説明しました。 – Melab