Python - Lösche leere Zeilen am Ende der Datei

8

Ich schreibe ein Skript, das alle Textdateien modifiziert. Es ersetzt Leerzeilen durch Leerzeilen. Es löscht die Leerzeilen am Ende der Datei. Das Bild zeigt die gewünschte Ausgabe.

Ich kann der gewünschten Ausgabe sehr nahe kommen. Das Problem ist, dass ich die letzte leere Zeile nicht loswerden kann. Ich denke, das hat etwas mit der letzten Zeile zu tun. Beispiel: ' the lines below me should be gone sieht tatsächlich wie folgt aus ' the lines below me should be gone\n' Es sieht so aus, als würden in der vorherigen Zeile neue Zeilen erstellt. Wenn z. B. Zeile 4 \n hat, dann ist Zeile 5 die Leerzeile und nicht Zeile 4.

Ich sollte beachten, dass ich rstrip oder strip

nicht verwenden kann

Mein Code bisher.

%Vor%     
Vader 30.01.2014, 01:21
quelle

1 Antwort

6

Das \n bedeutet im Wesentlichen "eine andere Zeile erstellen"

Wenn Sie also alle Zeilen entfernt haben, die \n sind, gibt es immer noch die vorherige Zeile

%Vor%

Dies bedeutet wiederum "eine andere Linie erstellen", über die hinaus, die Sie bereits entfernt haben

Da Sie sagen, dass Sie rstrip nicht verwenden können, könnten Sie die Schleife mit

beenden %Vor%

um \n vom letzten Element zu entfernen. Da \n nirgendwo anders in einer Zeile existieren kann, haben rstrip und strip denselben Effekt

Oder ohne any strip oder endswith :

%Vor%

Beachten Sie, dass \n ein einzelnes Zeichen ist, ordinal 0x0a as hex, nicht zwei Zeichen \ und n , ordinals 0x5c und 0x6e . Deshalb verwenden wir -1 und nicht -2

    
mhlester 30.01.2014, 01:24
quelle

Tags und Links