Как мне создать файлоподобный объект (тот же тип утки, что и File) с содержимым строки?
Для Python 2.x используйте модуль StringIO . Например:
>>> from cStringIO import StringIO >>> f = StringIO('foo') >>> f.read() 'foo'
Я использую cStringIO (который работает быстрее), но учтите, что он не принимает строки Unicode, которые нельзя кодировать как простые строки ASCII . (Вы можете переключиться на StringIO, изменив «cStringIO» на «StringIO».)
Для Python 3.x используйте модуль io.
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())
Два хороших ответа. Я бы добавил небольшую хитрость - если вам нужен настоящий файловый объект (некоторые методы ожидают его, а не только интерфейс), вот способ создать адаптер:
Это работает для Python2.7 и Python3.x:
io.StringIO(u'foo')