5

この投稿から、コンソールなしで印刷すると「Bad file descriptor」エラーが発生する理由がわかりました.

私の質問は、stdout が利用可能かどうかをどのように検出できますか? 私は単にこのようなことをすることができます:

if os.path.isfile(2):
   print "text"

ありがとう

4

2 に答える 2

8

os.path.isfile()は、ファイル記述子 (数値) ではなく、ファイル パス (文字列) を取るため、ソリューションは期待どおりに機能しません。

代わりにos.isatty()を使用できます。

if os.isatty(1):
    print "text"

os.isatty()True引数が端末に接続された開いているファイル記述子である場合に返されます。

stdout(ついでに、 is file descriptor 1. stderris file descriptorであることに注意してください2)。

于 2013-09-04T13:31:12.610 に答える