このモジュールは、(メモリファイルとしても知られている) 文字列のバッファに対して読み書きを行うファイルのようなクラス、 StringIO 、を実装しています。
操作方法についてはファイルオブジェクトの説明を参照してください(セクション 3.9)。
[buffer]) |
StringIO オブジェクトはユニコードも 8-bit の文字列も受け付けますが、 この2つを混ぜることには少し注意が必要です。 この2つが一緒に使われると、 getvalue() が呼ばれたときに、 (8th ビットを使っている)7-bit ASCII に解釈できない 8-bit の文字列は、 UnicodeError を引き起こします。
次にあげる StringIO オブジェクトのメソッドには特別な説明が必要です:
) |
StringIO オブジェクトの close() メソッドが呼ばれる前ならいつでも、 ``file'' の中身全体を返します。 ユニコードと 8-bit の文字列を混ぜることの説明は、上の注意を参照してください。 この2つの文字コードを混ぜると、このメソッドは UnicodeError を 引き起こすかもしれません。
) |
使用例:
import StringIO output = StringIO.StringIO() output.write('First line.\n') print >>output, 'Second line.' # ファイルの内容を取り出す -- ここでは # 'First line.\nSecond line.\n' contents = output.getvalue() # オブジェクトを閉じてメモリバッファを解放する -- # .getvalue() は例外を送出するようになる。 output.close()
ご意見やご指摘をお寄せになりたい方は、 このドキュメントについて... をご覧ください。