Pythonプロセスの出力がファイルに書き込まれているかどうかを確認する方法はありますか? 次のようなことができるようになりたいです。
if is_writing_to_terminal:
sys.stdout.write('one thing')
else:
sys.stdout.write('another thing')
os.isatty()
ファイル記述子が端末であるかどうかを確認するために使用できます。
if os.isatty(sys.stdout.fileno()):
sys.stdout.write('one thing')
else:
sys.stdout.write('another thing')
を使用しos.isatty
ます。fileno
これには、メンバーで取得できるファイル記述子 (fd) が必要です。
>>> from os import isatty
>>> isatty(sys.stdout.fileno())
True
StringIO
任意の file-likeをサポートしたい場合 (例:
hasattr(f, "fileno") and isatty(f.fileno())