rstrip Funktioniert nicht

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Sven1987h
User
Beiträge: 15
Registriert: Freitag 1. April 2011, 13:40

Hallo Leute

Ich habe eine txt datei erstellt in der ich 3 Zeilen habe in jeder zeile steht ein name
jeder Name soll in einer eigenen Variabel stehen das mache ich so

Code: Alles auswählen

daten = open("daten2.txt", "r")
i = 0
for data in daten.xreadlines():
    i = i + 1
    if i == 1:
        user = data
        user.strip("\n")
        print user
    if i==2:
        passwort = data
    if i==3:
        pfad = data
Aber die ausgabe ist trozdem noch mit absatz warum?
Darii
User
Beiträge: 1177
Registriert: Donnerstag 29. November 2007, 17:02

Weil strip einen neuen String zurückgibt. user selbst bleibt unverändert. Du musst also den neuen String user zuweisen.

Strings sind in Python übrigens grundsätzlich unveränderlich.
Benutzeravatar
/me
User
Beiträge: 3555
Registriert: Donnerstag 25. Juni 2009, 14:40
Wohnort: Bonn

Sven1987h hat geschrieben:Aber die ausgabe ist trozdem noch mit absatz warum?
Zeichenketten sind unveränderlich. Du musst den Rückgabewert von strip() zuweisen. Zudem kann natürlich auch noch ein '\r' dazwischenfunken. Vermutlich kannst du strip() ohnehin ohne explizit definierten Parameter verwenden.

Code: Alles auswählen

with open("daten2.txt", "r") as fp:
    for i, data in enumerate(fp, start=1):
        if i == 1:
            user = data.strip('\n')
            print user
        if i == 2:
            passwort = data
        if i == 3:
            pfad = data
Benutzeravatar
snafu
User
Beiträge: 6740
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

`file.xreadlines()` ist übrigens seit Jahren deprecated und in Python 3.x nicht mehr vorhanden.
Antworten