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"