cStringIO モジュールは StringIO モジュールと同様の インターフェースを提供しています。 StringIO.StringIO オブジェクトを酷使する場合、 このモジュールにある StringIO() 関数をかわりに使うと効果的です。
このモジュールは、ビルトイン型のオブジェクトを返すファクトリー関数を提供しているので、 サブクラス化して自分用の物を作ることはできません。 そうした場合には、オリジナルの StringIO モジュールを使ってください。
StringIO モジュールで実装されているメモリファイルとは異なり、 このモジュールで提供されているものは、プレイン ASCII 文字列にエンコードできない ユニコードを受け付けることができません。
また、引数に文字列を指定してStringIO()呼び出すと読み出し専用のオブジェクト が生成されますが、この場合 cStringIO.StringIO() では write()メソッドを持たない オブジェクトを生成します。 これらのオブジェクトは普段は見えません。 トレースバックに StringI と StringO として表示されます。
次にあげるデータオブジェクトも提供されています:
このモジュールには C API もあります。詳しくはこのモジュールのソースを参照してください。
使用例:
import cStringIO output = cStringIO.StringIO() output.write('First line.\n') print >>output, 'Second line.' # ファイルの内容を取り出す -- ここでは # 'First line.\nSecond line.\n' contents = output.getvalue() # オブジェクトを閉じてメモリバッファを解放する -- # 以降 .getvalue() は例外を送出するようになる。 output.close()