3

Pythonプロセスの出力がファイルに書き込まれているかどうかを確認する方法はありますか? 次のようなことができるようになりたいです。

if is_writing_to_terminal:
    sys.stdout.write('one thing')
else: 
    sys.stdout.write('another thing')
4

2 に答える 2

4

os.isatty()ファイル記述子が端末であるかどうかを確認するために使用できます。

if os.isatty(sys.stdout.fileno()):
    sys.stdout.write('one thing')
else: 
    sys.stdout.write('another thing')
于 2012-11-14T11:13:35.343 に答える
1

を使用しos.isattyます。filenoこれには、メンバーで取得できるファイル記述子 (fd) が必要です。

>>> from os import isatty
>>> isatty(sys.stdout.fileno())
True

StringIO任意の file-likeをサポートしたい場合 (例:

hasattr(f, "fileno") and isatty(f.fileno())
于 2012-11-14T11:13:24.123 に答える