Seite 1 von 1

\n am ende entfernen

Verfasst: Montag 4. April 2005, 18:06
von Arminius
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?

Verfasst: Montag 4. April 2005, 18:42
von marco_
Das \n ist eigentlich zur formatierung da, es ist das Zeichen für einen Zeilenumbruch, also ein Enter.

Verfasst: Montag 4. April 2005, 19:09
von Leonidas
Wie wär's mit

Code: Alles auswählen

st = st.splitlines()[0]
wobei st dein String ist.

Verfasst: Montag 4. April 2005, 19:28
von mawe
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

Verfasst: Montag 4. April 2005, 21:26
von joe
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

Verfasst: Montag 4. April 2005, 21:43
von mawe
Hi joe!

Hast recht, danke für den Hinweis.

Gruß, mawe

Verfasst: Dienstag 5. April 2005, 10:00
von Arminius
super, danke :D

Verfasst: Dienstag 5. April 2005, 15:40
von Arminius
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??????

Verfasst: Dienstag 5. April 2005, 15:47
von mawe
Hi!

Das geht nicht?

Code: Alles auswählen

x = int(x.rstrip("\n"))
Gruß, mawe

Verfasst: Dienstag 5. April 2005, 15:53
von CM
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