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
6
A
risposta
25
Questo è esattamente ciò che è StringIO
/cStringIO
(rinominato in io.StringIO
in Python 3).
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.
+1 Stavo per pubblicarlo! –
La soluzione deve essere compatibile con Python 2.7.3 – user1454693
@ user1454693 La versione di StringIO è ... o stai utilizzando un 2.7.3 diverso dal resto del mondo? –