¿Cómo envuelvo una cadena en un archivo en Python?
Pregunta
¿Cómo creo un objeto similar a un archivo (el mismo tipo de pato que el archivo) con el contenido de una cadena?
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