バッファモジュール(StringIO, BytesIO, cStringIO)を使うことで、文字列やバイトデータをファイルのように擬態することができます。
Python 2.7のStringIOモジュールはこれらのデータ蒸気を扱うことができました。
- io.StringIOは、Unicode文字列を必要とします。
- io.BytesIOは、バイト文字列を必要とします。
- StringIO.StringIOは、Unicodeまたはバイト文字列のいずれかを許可します。
- cStringIO.StringIOは、バイト文字列としてエンコードされた文字列を必要とします。
以下はioモジュールを使った簡単な例です
ここでは、連続した書き込みのたびに、ファイルと同じようにストリームオブジェクトにデータを追加しています
以下のメソッドについては特に注意が必要です。
getvalue()
ファイルオブジェクトのclose()メソッドが呼び出される前に、ファイルの内容全体をいつでも取得します。
close()
メモリバッファを解放し、bufferオブジェクトでの作業を終了します。
seek()
ファイルの開始を表すseek(0)のように、データの上にカーソルを移動するためにseekを使用することができます
。