Leere Zeilen eines Textdokuments mit Python entfernen?
Wie kann ich komplett leere Zeilen (ohne Leerzeichen) eines Textdokuments mit Python 3 entfernen? Alles was ich dazu im Internet gefunden hab funktioniert irgendwie nicht.
2 Antworten
ungefähr so:
with open('Eingabe_Datei.txt') as Eingabe, \
open('Ausgabe_Datei.txt', 'w') as Ausgabe:
for line in Eingabe:
if line[:-1]:
Ausgabe.write(line)
Habs noch nicht versucht, aber wie wäre es mit
with open(filename, 'r+') as f:
for line in f:
if line = '\n':
f.write('')
Muss ich nachher mal ausprobieren...
Kreasteve
15.12.2019, 22:35
@Kreasteve
... und das tut wohl nicht viel anderes als:
from tempfile import mkstemp
from shutil import move
from os import fdopen, remove
def removeEmptyLines(file_path):
fh, abs_path = mkstemp() #erzeugt temporäre Datei irgendwo auf dem Rechner
with fdopen(fh,'w') as new_file: #öffnet die temporäre Datei
with open(file_path) as old_file: #öffnet die alte Datei
for line in old_file:
if line != '\n':
new_file.write(line) #schreibt nur Zeilen, die etwas enthalten in die temporäre Datei
remove(file_path) #entfernt die alte Datei
move(abs_path, file_path) #verschiebt die temporäre Datei dorthin wo die Alte war
removeEmptyLines(filename)
Das habe ich von hier und etwas angepasst.
Das ist jetzt das, was ich bisher geschafft habe:
Bestimmt nicht sehr effektiv, da jede Zeile, die etwas enthält scheinbar neu geschrieben wird.