Pregunta

¿Cómo creo un objeto similar a un archivo (el mismo tipo de pato que el archivo) con el contenido de una cadena?

¿Fue útil?

Solución

Para Python 2.x, use el módulo StringIO . Por ejemplo:

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

Utilizo cStringIO (que es más rápido), pero tenga en cuenta que no acepte Unicode cadenas que no pueden codificarse como cadenas ASCII simples . (Puedes cambiar a StringIO cambiando " de cStringIO " a " de StringIO " ;.)

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

f = io.StringIO('foo')

Otros consejos

En Python 3.0:

import io

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

Dos buenas respuestas. Le agrego un pequeño truco & # 8212; Si necesita un objeto de archivo real (algunos métodos esperan uno, no solo una interfaz), esta es una forma de crear un adaptador:

Esto funciona para Python2.7 y Python3.x:

io.StringIO(u'foo')
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top