std出力とエラー出力をファイルに非同期的にリダイレクトする[冗長]

std出力とエラー出力をファイルに非同期的にリダイレクトする[冗長]

スレッドを含む一部のプログラムの出力を特定のファイルにリダイレクトしようとしています。

実行しようとしましたが、実行を停止しない場合はcommand > file 2&>1まだ空になります。commandfile

出力を非同期的にダンプする方法はありますかfile

Pythonの断片の例:

import _thread

def run():
    raise ValueError('plah')

_thread.start_new_thread(run, ())
while True:
    pass

プログラムが手動で停止するまで、実行はpython program.py 2> log.txt出力を生成しません。log.txt

ベストアンサー1

出力を行うバッファリングされていない。 Pythonを使用してこれを行う簡単な方法は、次のように設定することですPYTHONUNBUFFERED

PYTHONUNBUFFERED=1 python program.py 2>log.txt

おすすめ記事