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
6
A
Antwort
25
Dies ist genau das, was StringIO
/cStringIO
(umbenannt in io.StringIO
in Python 3) ist.
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.
+1 Ich wollte das nur posten! –
Die Lösung muss kompatibel sein mit Python 2.7.3 – user1454693
@ user1454693 Die StringIO-Version ist ... oder verwenden Sie eine andere 2.7.3 als der Rest der Welt? –