\n am ende entfernen

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
Arminius
User
Beiträge: 11
Registriert: Montag 4. April 2005, 16:27

Montag 4. April 2005, 18:06

hallo, ich habe in einer LIste die verschiedenen Zeilen einer Textdatei gespeichert. nun hängt am ende aber immer ein \n. Kann mir jemand sagen wie ich das entfernen kann?
marco_
User
Beiträge: 78
Registriert: Freitag 25. März 2005, 12:24

Montag 4. April 2005, 18:42

Das \n ist eigentlich zur formatierung da, es ist das Zeichen für einen Zeilenumbruch, also ein Enter.
Leonidas
Administrator
Beiträge: 16024
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Montag 4. April 2005, 19:09

Wie wär's mit

Code: Alles auswählen

st = st.splitlines()[0]
wobei st dein String ist.
My god, it's full of CARs! | Leonidasvoice vs Modvoice
mawe
Python-Forum Veteran
Beiträge: 1209
Registriert: Montag 29. September 2003, 17:18
Wohnort: Purkersdorf (bei Wien [Austria])

Montag 4. April 2005, 19:28

Hi!

strip() entfernt standardmässig das \n

Code: Alles auswählen

>>> x = ["zeilen\n","umbruch\n"]
>>> for i in x: print i
...
zeilen

umbruch

>>> for i in x: print i.strip()
...
zeilen
umbruch
Gruß, mawe
joe

Montag 4. April 2005, 21:26

mawe hat geschrieben:Hi!

strip() entfernt standardmässig das \n
Aber leider nicht nur \n.

Code: Alles auswählen

>>> zeilen = ["for i in range(5):\n","   print i\n","   print i*i\n"]
>>> for z in zeilen: print z
...
for i in range(5):

   print i

   print i*i

>>> for z in zeilen: print z.strip()
...
for i in range(5):
print i
print i*i
Deswegen besser defensiv programmieren und z.rstrip() oder gar z.rstrip("\n") verwenden.
joe
mawe
Python-Forum Veteran
Beiträge: 1209
Registriert: Montag 29. September 2003, 17:18
Wohnort: Purkersdorf (bei Wien [Austria])

Montag 4. April 2005, 21:43

Hi joe!

Hast recht, danke für den Hinweis.

Gruß, mawe
Arminius
User
Beiträge: 11
Registriert: Montag 4. April 2005, 16:27

Dienstag 5. April 2005, 10:00

super, danke :D
Arminius
User
Beiträge: 11
Registriert: Montag 4. April 2005, 16:27

Dienstag 5. April 2005, 15:40

Eine Frage nochmal: Ich hab es jetzt folgendermaßen:

Code: Alles auswählen

            x=datei.readline()
            x.rstrip("\n")
            L.append(x)
Bei den eingelesenen Zeilen handelt es sich manchmal nur um zahlen, und manchmal um nur enter. Ich mochte, die zahlen aber sortieren, das heist ich brauch sie als integer. ich kann sie aber nicht umwandeln wenn am ende das \n hängt. was mach ich falsch??????
mawe
Python-Forum Veteran
Beiträge: 1209
Registriert: Montag 29. September 2003, 17:18
Wohnort: Purkersdorf (bei Wien [Austria])

Dienstag 5. April 2005, 15:47

Hi!

Das geht nicht?

Code: Alles auswählen

x = int(x.rstrip("\n"))
Gruß, mawe
CM
User
Beiträge: 2464
Registriert: Sonntag 29. August 2004, 19:47
Kontaktdaten:

Dienstag 5. April 2005, 15:53

Hi,

ws Du falsch machst - und der mawe hat ja auch schon die Lösung verraten - ist, daß Du eine Funktion auf x anwendest, das Ergebnis aber nicht gespeichert hast. mawe hat Zuweisung des Ergebnis gleich mit in diese kurze Zeile gepackt. Na?

Gruß,
Christian
Antworten