Ich bin ein Neuling und möchte Daten aus einer TXT-Datei extrahieren und in eine andere Datei schreiben. Jedes Datum in einer Zeile. Aber ich verstehe nicht wie. Ich habe versucht, Anfügen, aber es wird nicht funktionieren und so schreibt sie nur das letzte Datum:Gruppen als Strings in Datei schreiben
f = open("Krupp.txt", "r")
contents = f.read()
f.close() #close the file
# finditer
# finds all Dates and shows them in a List (Montag, 15. März 2013)
for m in re.finditer("(Montag|Dienstag|Mittwoch|Donnerstag|Freitag|Samstag|Sonnabend|Sonntag)(,)([123][0-9]|[1-9])(.)(Januar|Februar|März|April|Mai|Juni|Juli|August|September|Oktober|November|Dezember)()([0-2][0-9][0-9][0-9])", contents):
print m.group(0)
# changed
with open("testoutput.txt", "a") as myfile:
myfile.write(m.group(0))
--- EDIT --- Ich änderte
f.write(contents) # writes contents correctly to file with Umlauts
f.write(m.group(0))
zu
with open("testoutput.txt", "a") as myfile:
myfile.write(m.group(0))
Jetzt schreibt es alle Daten in die Datei, schreibt sie aber direkt hintereinander. Was muss ich hinzufügen, wenn ich sie untereinander haben möchte?
Kann jemand helfen?
freundlichen Grüßen
Bitte weitere Informationen rund um diese bereitzustellen. Geben Sie ein Beispiel an, wie die Datei aussieht. Erhalten Sie etwas von Ihrem Regex-Match? Darüber hinaus überschreiben Sie die Datei in Ihrer Schleife jedes Mal, wenn Sie sie jedes Mal im Schreibmodus öffnen. Sie möchten Ihre Datei außerhalb Ihrer Schleife öffnen und dann schreiben. – idjaw
Sie überschreiben einfach Ihre Datei in jeder Iteration, vielleicht 'open (" testoutput.txt "," a ")' ist was Sie suchen. Darüber hinaus ist das Öffnen und Schreiben der Datei bei jeder Iteration sehr langsam - speichern Sie sie in einer Zeichenfolge und schreiben Sie sie anschließend. – Jan