Seite 1 von 1

Zeilen aus einer Datei strippen?!

Verfasst: Samstag 25. April 2020, 21:34
von CrashBandicoot
Hallo zusammen,

irgendwie hänge ich gerade an einem vermeintlich einfachen Problem.

Ich habe eine Textdatei und möchte diese einlesen, aus jeder Zeile alle Zahlen entfernen und das ganze dann in eine neue Datei schreiben.

Ich habe es mit folgenden Zeilen versucht:

Code: Alles auswählen

with open("withnumbers.txt") as f, open('withoutnumbers.txt', 'w') as output:
    for line in f:
        x = line.strip("0123456789")
        output.write( x)
            
Hiermit wird allerdings lediglich der komplette Inhalt kopiert und nicht gestript, obwohl die Strip-Funktion mit einzelnen Variablen einwandfrei funktioniert.
Dass ich Anfänger bin, brauche ich bei der Frage vermutlich keinem sagen.

Mit .split() habe ich es auch schon versucht, da die Zahlen immer am Ende der Zeile stehen, funktionert allerdings ebenfalls nicht.
Falls es relevant ist, meine Zahlen variieren zwischen ein- und fünfstellig.

Es ist vermutllich selbst für einen Anfänger nicht schwer, aber ich steh auf dem Schlauch.

Danke und Grüße.

Re: Zeilen aus einer Datei strippen?!

Verfasst: Samstag 25. April 2020, 21:51
von nezzcarth
Das funktioniert nicht, weil die Zeilen mit einem einem Zeilenvorschub bzw. (unter Windows) Wagenrücklauf + Zeilenvorschub enden. Den/die musst du zuerst entfernen, in dem du strip vorher ohne Parameter aufrufst oder die Zeichen in die Auswahl aufnimmst.

Re: Zeilen aus einer Datei strippen?!

Verfasst: Samstag 25. April 2020, 22:04
von CrashBandicoot
nezzcarth hat geschrieben: Samstag 25. April 2020, 21:51 Das funktioniert nicht, weil die Zeilen mit einem einem Zeilenvorschub bzw. (unter Windows) Wagenrücklauf + Zeilenvorschub enden. Den/die musst du zuerst entfernen, in dem du strip vorher ohne Parameter aufrufst oder die Zeichen in die Auswahl aufnimmst.
Arbeite z.Z. unter Linux.
Habe Strip jetzt ohne Parameter aufgerufen, ändert an der Ausgabe leider noch nichts.

Code: Alles auswählen

    for line in f:
        x = line.strip()
        x = line.strip("0123456789")
        output.write(x)
und auch:

Code: Alles auswählen

x = line.strip('\n\t')
ändert nichts.

Re: Zeilen aus einer Datei strippen?!

Verfasst: Samstag 25. April 2020, 22:13
von nezzcarth
Naja, so überschreibst du x ja jetzt auch :) Mach daraus z.B.

Code: Alles auswählen

line = line.strip()

Re: Zeilen aus einer Datei strippen?!

Verfasst: Samstag 25. April 2020, 22:32
von CrashBandicoot
nezzcarth hat geschrieben: Samstag 25. April 2020, 22:13 Naja, so überschreibst du x ja jetzt auch :) Mach daraus z.B.

Code: Alles auswählen

line = line.strip()
Heureka, zumindest halb :)
Die Zahlen sind raus, die Zeilenumbrüche allerdings auch, sprich alles steht direkt am Stück hintereinander :geek:

Re: Zeilen aus einer Datei strippen?!

Verfasst: Samstag 25. April 2020, 22:37
von nezzcarth
Um einen Zeilenumbruch zu erzeugen, schreibt man für gewöhnlich mit print in eine Datei:

Code: Alles auswählen

print(x, file=output)

Re: Zeilen aus einer Datei strippen?!

Verfasst: Samstag 25. April 2020, 22:44
von CrashBandicoot
Ich habe es mit

Code: Alles auswählen

output.write(x + "\n")
regeln können.
Danke dir! :)