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