python3で標準出力を取得
出力する系のメソッドをテストするときに毎回ググるのでメモ。
from io import StringIO tmp_buffer = StringIO() sys.stdout = tmp_buffer # outの中に出力されるはずだったやつが入る out = tmp_buffer.getvalue() # sys.stdoutの行き先を標準出力に戻す sys.stdout = sys.__stdout__
なんかググると上の方の検索結果に、sys.stdoutを一旦ファイル出力してそのファイルの中身を拾って標準出力をゲットする、ていうやり方が出てくるけど、なんかすごく直感的に嫌な感じがしてしまうのでこっちのやり方のほうが好き。