ich leere Zeilen aus einer Textdatei zu entfernen, ich versuche, so, wenn ich zum Beispiel:Streifen Leerzeilen aus einer Textdatei
line 1
line 2
line 3
line 4
line 5
Das Ergebnis nach der Verarbeitung der Datei sollte wie folgt aussehen:
line 1
line 2
line 3
line 4
line 5
ich suchte Stack-Überlauf, und das ist, was ich mit so weit kam heraus:
with open('file.txt', 'r+', encoding='utf-8') as file:
for line in file:
if line.strip():
file.write(line)
Das funktionierte perfekt außer fo r ein wenig unbequem; stattdessen den ursprünglichen Inhalt mit dem neuen zu ersetzen, wird das Ergebnis an das Ende der Datei angehängt wie folgt:
line 1
line 2
line 3
line 4
line 5line 1
line 2
line 3
line 4
line 5
Meine Frage ist, gibt es eine Möglichkeit, dieses Problem innerhalb der for-Schleife beheben kann ohne externe Speicher (speichert das Ergebnis in einer Datei oder Liste und schreibt es zurück in die Datei)? oder wenn es einen besseren Weg gibt, bitte teilen.
Ich hoffe, meine Frage war klar und danke.
Öffnen Sie eine zweite Datei zu verwenden. Dann bei Fertigstellung löschen Sie die erste Datei und benennen Sie sie um, um den ursprünglichen Namen zu ersetzen –
Siehe diesen Beitrag: http://stackoverflow.com/questions/2369440/how-to-delete-all-blank-lines-in-the-file-with- die-help-of-python –
netter Trick danke – user3885884