pythonで出力をバッファリングしない

python内でprintしたものはバッファリングされるため、subprocessから呼んだ別プロセスからの出力と前後してしまったりして困るときがある。

以下のどちらかでバッファリングを解除できる。

以下で起動。

python -u (スクリプト名)

コード中に以下を指定。

sys.stdout = os.fdopen(sys.stdout.fileno(), 'w', buffering=1)
sys.stderr = os.fdopen(sys.stderr.fileno(), 'w', buffering=1)
sys.stdin = os.fdopen(sys.stdin.fileno(), 'r', buffering=1)
スポンサーリンク

シェアする

  • このエントリーをはてなブックマークに追加

フォローする

スポンサーリンク