Wie entferne ich das letzte Zeichen einer Zeichenkette, wenn es ein Zeilenumbruch ist?
"abc\n" --> "abc"
Wie entferne ich das letzte Zeichen einer Zeichenkette, wenn es ein Zeilenumbruch ist?
"abc\n" --> "abc"
Das hat mir sehr geholfen, eine Textdatei mit Zeilenenden schnell in eine einzige Textzeile zu verwandeln. Ich bin ein Neuling, also nicht sicher, ob es einen besseren Weg, es zu tun, aber es funktionierte, danke! (Strip schien nur an den Enden zu funktionieren, nicht intern)
Nur für den Fall, dass jemand anderes die Idee von @DoorknobofSnow nutzen möchte: Es ist nur eine kleine Änderung, um das Regex-Modul zu verwenden: import re
re.sub('\n|\r', '', '\nx\n\r\n')
==> 'x'
.
Dies würde genau das chomp von Perl (ohne das Verhalten bei Arrays) für " \n "Zeilenende:
def chomp(x):
if x.endswith("\r\n"): return x[:-2]
if x.endswith("\n") or x.endswith("\r"): return x[:-1]
return x
(Hinweis: Es ändert die Zeichenkette nicht 'an Ort und Stelle'; es entfernt keine zusätzlichen Leerzeichen am Ende; es nimmt \r\n auf dem Konto)
@eric Die Zeichenfolge wird nicht geändert. Es gibt eine geänderte Kopie von x zurück. Strings an Ort und Stelle zu ändern ist eine Sache von Perl, nicht von Python.
Ich will damit sagen, dass Ihr Hinweis ist verwirrend: Durch die Angabe, dass der Code keine Zeichenketten verändert, könnten Anfänger annehmen, dass dies eine Sache in Python ist.
CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.
4 Stimmen
Superset: beliebige Zeichenkette anstelle von nur newline: stackoverflow.com/questions/1038824/
9 Stimmen
Die A+-Antwort lautet, wenn dies darauf zurückzuführen ist, dass vergessen wurde
open()
eine Datei mit dem entsprechenden 'newline=...' Parameter für Ihre Plattform (universelle Unterstützung von Zeilenumbrüchen), müssen Sie ihn möglicherweise nicht explizit entfernen.