変な文字で sys.stdout が止まらないようにする
#! python3 import sys sys.stdout.errors = 'xmlcharrefreplace' # エラー
とかできるとうれしいのだがエラーになるので、
AttributeError: attribute 'errors' of '_io.TextIOWrapper' objects is not writable
repr(sys.stdout) やら dir(sys.stdout) を参考に自前のTextIOWrapperを作っているのだが、
sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding = sys.stdout.encoding, line_buffering = True, errors = 'xmlcharrefreplace') sys.stdout.mode = 'w'
これでいいのだろうか。
Python3になってこの辺りが変わった(sys.stdout が生の入出力ではなくなった)ので、まだよくわかんないんだよな。