2012-08-06 21 views
6

¿Cómo puedo crear un objeto de archivo falso en Python que contenga texto? Estoy intentando escribir pruebas unitarias para un método que toma un objeto de archivo y recupera el texto a través del readlines() y luego hago algo de manipulación de texto. Tenga en cuenta que no puedo crear un archivo real en el sistema de archivos. La solución debe ser compatible con Python 2.7.3.Cómo crear un archivo de texto falso en Python

Respuesta

25

Esto es exactamente lo que StringIO/cStringIO (renombrado a io.StringIO en Python 3) es para.

+0

+1 ¡Solo iba a publicar eso! –

+0

La solución debe ser compatible con Python 2.7.3 – user1454693

+4

@ user1454693 La versión de StringIO es ... ¿o está usando un 2.7.3 diferente que el resto del mundo? –

2

O puede aplicar usted mismo con bastante facilidad sobre todo porque todo lo que necesita es readlines():

def FileSpoof: 
    def __init__(self,my_text): 
     self.my_text = my_text 
    def readlines(self): 
     return self.my_text.splitlines() 

luego simplemente llamar así:

somefake = FileSpoof("This is a bunch\nOf Text!") 
print somefake.readlines() 

Dicho esto la otra respuesta es probablemente más correcto.

Cuestiones relacionadas