Pythonでファイル内の文字列をラップするにはどうすればよいですか?

StackOverflow https://stackoverflow.com/questions/141449

  •  02-07-2019
  •  | 
  •  

質問

文字列の内容を使用してファイルのようなオブジェクト(Fileと同じアヒルタイプ)を作成するにはどうすればよいですか?

役に立ちましたか?

解決

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

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

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

Python 3.xの場合、 io モジュール。

f = io.StringIO('foo')

他のヒント

Python 3.0の場合:

import io

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

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

これはPython2.7とPython3.xで機能します:

io.StringIO(u'foo')
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top