2012-08-06 4 views
6

Wie kann ich ein gefälschtes Dateiobjekt in Python erstellen, das Text enthält? Ich versuche Komponententests für eine Methode zu schreiben, die ein Dateiobjekt aufnimmt und den Text über readlines() abruft und dann eine Textmanipulation durchführt. Bitte beachten Sie, dass ich keine tatsächliche Datei im Dateisystem erstellen kann. Die Lösung muss mit Python 2.7.3 kompatibel sein.Erstellen einer gefälschten Textdatei in Python

Antwort

25

Dies ist genau das, was StringIO/cStringIO (umbenannt in io.StringIO in Python 3) ist.

+0

+1 Ich wollte das nur posten! –

+0

Die Lösung muss kompatibel sein mit Python 2.7.3 – user1454693

+4

@ user1454693 Die StringIO-Version ist ... oder verwenden Sie eine andere 2.7.3 als der Rest der Welt? –

2

Oder Sie könnten es selbst implementieren ziemlich leicht zumal alles, was Sie brauchen readlines() ist:

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

dann rufen Sie einfach es mögen:

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

Das sagte die andere Antwort ist wahrscheinlich richtig.