109

文字列の内容を持つファイルのようなオブジェクト (ファイルと同じダック型) を作成するにはどうすればよいですか?

4

5 に答える 5

138

Python 2.x の場合は、StringIOモジュールを使用します。例えば:

>>> from cStringIO import StringIO
>>> f = StringIO('foo')
>>> f.read()
'foo'

私は cStringIO (より高速) を使用しますが、プレーン ASCII 文字列としてエンコードできない Unicode 文字列を受け入れないことに注意してください。(「from cStringIO」を「from StringIO」に変更することで StringIO に切り替えることができます。)

Python 3.x の場合は、ioモジュールを使用します。

f = io.StringIO('foo')
于 2008-09-26T19:34:04.977 に答える
38

Python 3.0 では:

import io

with io.StringIO() as f:
    f.write('abcdef')
    print('gh', file=f)
    f.seek(0)
    print(f.read())

出力は次のとおりです。

'abcdefgh'
于 2008-09-26T22:00:25.923 に答える
2

2つの良い答え。ちょっとしたトリックを追加します — 実際のファイル オブジェクトが必要な場合 (インターフェースだけでなく、一部のメソッドはファイル オブジェクトを必要とします)、アダプターを作成する方法は次のとおりです。

于 2008-09-27T12:19:45.217 に答える