Python の文字列/バイトバッファ
備忘録。
Python で IO 同様のインタフェースで扱えるインメモリバッファ(Ruby における StringIO)について。
Ruby では StringIO がその役割を担うが、Python の場合はテキストファイルとして扱うなら io.StringIO、バイナリファイルとして扱うなら io.BytesIO と役割が分かれている。
どちらも getvalue() でバッファ全体(str もしくは bytes)が取得できる。
import io # 初期化時点ではストリームの先頭を読み書きする strio = io.StringIO("abc") strio.write("x") strio.getvalue() # "xbc" # BytesIOの初期化/書き込みは str ではなく bytes で行う bio = io.BytesIO() bio.write(b"x") bio.getvalue() # b"xbc"