python の stderr の buffering

Python では,stderr がデフォルトでバッファリングされているようである.(cygwinからやっているのでそう見えるだけ??) stack overflow によると,以下のようにすれば良いそうだ.

import os
import sys
buf_arg = 0
if sys.version_info[0] == 3:
    os.environ['PYTHONUNBUFFERED'] = '1'
    buf_arg = 1
sys.stdout = os.fdopen(sys.stdout.fileno(), 'a+', buf_arg)
sys.stderr = os.fdopen(sys.stderr.fileno(), 'a+', buf_arg)

少なくとも,python 2.7 では,これでOKなようである.

keyword: standard error, standard out

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

*