2012-08-06 17 views
6

Come posso creare un oggetto file falso in Python contenente testo? Sto provando a scrivere i test unitari per un metodo che accetta un oggetto file e recupera il testo tramite readlines() quindi esegue alcune manipolazioni del testo. Si noti che non è possibile creare un file effettivo sul file system. La soluzione deve essere compatibile con Python 2.7.3.Come creare un file di testo falso in Python

risposta

25

Questo è esattamente ciò che è StringIO/cStringIO (rinominato in io.StringIO in Python 3).

+0

+1 Stavo per pubblicarlo! –

+0

La soluzione deve essere compatibile con Python 2.7.3 – user1454693

+4

@ user1454693 La versione di StringIO è ... o stai utilizzando un 2.7.3 diverso dal resto del mondo? –

2

Oppure si potrebbe implementare da soli abbastanza facilmente soprattutto perché tutto ciò che serve è readlines():

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

poi basta chiamare in:

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

Detto questo l'altra risposta è probabilmente più corretto.

Problemi correlati