Pergunta

Como faço para criar um arquivo do tipo de objeto (mesmo tipo de pato como arquivo) com o conteúdo de uma string?

Foi útil?

Solução

Para Python 2.x, utilize o StringIO o módulo. Por exemplo:

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

Eu uso cStringIO (que é mais rápido), mas nota que não aceitar Unicode cordas que não podem ser codificados como strings ASCII simples . (Você pode mudar para StringIO mudando "de cStringIO" para "a partir StringIO".)

Para Python 3.x, use o io módulo .

f = io.StringIO('foo')

Outras dicas

Em Python 3.0:

import io

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

Duas respostas boas. Eu adicionaria um pequeno truque - se você precisa de um objeto de arquivo real (alguns métodos esperar um, não apenas uma interface), aqui é uma maneira de criar um adaptador:

Isso funciona para Python2.7 e Python3.x:

io.StringIO(u'foo')
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top