Ich habe ein Skript geschrieben, um überflüssige Leerzeichen aus einem fremdsprachigen Text zu entfernen. Wenn ich das Skript in Windows-Eingabeaufforderung ausführe, erhalte ich keine Fehler. Alles sieht perfekt aus. Die Ausgabedatei, die ich in meinem Skript angegeben habe, wird jedoch weder erstellt noch die Eingabedatei geändert. Ich habe versucht, ein leeres Dokument 'corpus_1' für das Skript zu schreiben. Dann habe ich versucht, einfach zurück in die Eingabedatei zu schreiben. In beiden Fällen bleibt die angegebene Datei unverändert. Wie kann ich mein Skript in eine Datei schreiben lassen? Was fehlt mir in meinem Code?Warum schreibt mein Skript nicht in die Datei?
def lettersWhitespace():
replacements = {' ':' ', 'c ':'c'}
with open('C:\\Users\\Charles\\corpus.odt','w+') as infile, open('C:\\Users\\Charles\\corpus_1.odt', 'w') as outfile:
for line in infile:
for src, target in replacements.iteritems():
line = line.replace(src, target)
outfile.write(line)
EDIT: Ich glaube, dass ich das Problem gefunden habe. Es scheint, dass meine erste Zeile "def lettersWhitespace():" überflüssig ist. Wie geschrieben, definiert das Skript eine Funktion, ruft diese Funktion jedoch nicht auf. Klingt das richtig?
'w +' löscht die Datei. Ich hoffe, das war nicht deine einzige Kopie. – user2357112
Danke für die Eingabe. Ich habe mehrere Backups, aber nach dem Ausführen des Skripts habe ich nicht einmal eine gelöschte Datei erstellt. Nichts wird verändert. Aber wenn ich das endlich zur Arbeit bekomme, sollte ich einfach 'w' anstatt 'w +' haben? –