2016-07-13 8 views
0

スクリプトをパイプしているときと違うときに振る舞いをする必要があるときと、普通に呼び出されているときを区別するにはどうすればいいですか?これは、ぶら下がりを避けるために必要です。私はただstdinが空であるかどうかをチェックすることについて話しているわけではありません。Python 3でスクリプトがパイプされているかどうかを確認します

+1

は、なぜあなたは、具体的入力が* *パイプであるかどうかを気にしていますか?あなたのプログラムが異なった振る舞いをする必要のあるパイプについてはどうですか?あなたのプログラムは 'python yourprog.py user2357112

+0

@ user2357112これは本当に知る必要はありますか?とにかく私はなぜ私がしたいのか説明しました。 – Melab

答えて

-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