Как перенести строку в файл в Python?

Как создать файл-подобный объект (тот же тип утки, что и Файл), с содержимым строки?

Ответ 1

Для Python 2.x используйте модуль StringIO. Например:

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

Я использую cStringIO (это быстрее), но обратите внимание, что он не принимает строки Unicode, которые не могут быть закодированы как простые строки ASCII. (Вы можете переключиться на StringIO, изменив "from cStringIO" на "из StringIO".)

Для Python 3.x используйте модуль io.

f = io.StringIO('foo')

Ответ 2

В Python 3.0:

import io

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

Ответ 3

Два хороших ответа. Id добавьте небольшой трюк - если вам нужен реальный объект файла (некоторые методы ожидают его, а не только интерфейс), вот способ создания адаптера: