Leerzeichen rechts entfernen über rstrip()
Gerne werden bei Benutzereingaben versehentlich vom Nutzer Leerzeichen am Anfang oder Ende mit eingegeben. Leerzeichen auf der rechten Seite eines Strings (sprich am Ende der Zeichenkette) können über rstrip()
entfernt werden. Das „r“ am Anfang steht für rechts (englisch „right“).
Befehlsaufbau:
str.rstrip([Zeichen])
Nehmen wir unseren Beispieltext mit Leerzeichen rechts und links:
inhalt = " Python 3 rocks "
ausgabe = inhalt.rstrip()
print(ausgabe + ", daher www.Python-lernen.de")
Für die bessere Sichtbarkeit des Effekts lassen wir einen zusätzlichen Text ausgeben. Wir erhalten folgende Ausgabe:
Python 3 rocks, daher www.Python-lernen.de
Parameter nutzen: Beliebige Zeichen, die entfernt werden
Wir können mehr als Leerzeichen entfernen lassen! Über den Parameter können wir alle gewünschten Zeichen mitgeben, die rechts entfernt werden sollen. Jetzt haben wir zum Beispiel eine merkwürdige Eingabe mit vielen 4ern am Ende. Diese sollen beseitigt werden.
inhalt = " Python 3 rocks 1233 4444"
ausgabe = inhalt.rstrip('4')
print(ausgabe + ", daher www.Python-lernen.de")
Als Ergebnis erhalten wir:
Python 3 rocks 1233 , daher www.Python-lernen.de
Es ist möglich, mehrere Zeichen einzugeben, die entfernt werden sollen.
inhalt = " Python 3 rocks 1233 4444"
ausgabe = inhalt.rstrip('1234 ?XYZ')
print(ausgabe + ", daher www.Python-lernen.de")
Es werden also folgende Zeichen entfernt: Zahlen von 1 bis 4, Fragezeichen, Leerzeichen und „XYZ“ (aber nur in Großschreibung):
Python 3 rocks, daher www.Python-lernen.de
Alles am rechten Ende wird entfernt, bis die Methode auf das erste nicht zu entfernende Zeichen stößt. Daher bleibt die 3 nach Python mitten im Text stehen!
Entfernen von Zeilenumbruch, Newline \r\n mit Python
Die rstrip()
-Methode von Python entfernt standardmäßig alle Arten von nachgestellten Leerzeichen. Dazu gehören nicht Zeilenumbruch und neue Zeilen, die über den Steuercode \r\n übertragen werden.
inhalt = " Python rocks \n \r\n "
ausgabe = inhalt.rstrip('')
print(ausgabe + ", damit sichtbar wird, was gelöscht wurde")
Das Ergebnis:
Python rocks , damit sichtbar wird, was gelöscht wurde
Möchte man gezielt einen bestimmten Zeilenumbruch nur entfernen, muss dieser als Parameter mit Übergeben werden:
inhalt = " Python rocks \n \r\n "
ausgabe = inhalt.rstrip('\n ')
print(ausgabe + ", damit sichtbar wird, was gelöscht wurde")
Als Ergebnis werden alle Umbruch (\n) und Leerzeichen gelöscht. Ein Umbruch (\r) bleibt erhalten:
Python rocks , damit sichtbar wird, was gelöscht wurde
Sollen alle Zeilenumbruch und Leerzeichen entfernt werden, müssen alle 3 Angaben in rstrip('\n \r')
gemacht werden! Dabei ist die Reihenfolge egal. Es funktioniert genauso: rstrip(' \r\n')
inhalt = " Python rocks \n \r\n "
ausgabe = inhalt.rstrip('\n \r')
print(ausgabe + ", damit sichtbar wird, was gelöscht wurde")
Das Ergebnis:
Python rocks, damit sichtbar wird, was gelöscht wurde
Alle String-Methoden zum Beseitigen von Leerzeichen:
lstrip() – links Zeichen entfernen (meistens Leerzeichen)
strip() – rechts und links bestimmte Zeichen entfernen (meistens Leerzeichen)
rstrip() – rechts Zeichen entfernen (meistens Leerzeichen)