webentwicklung-frage-antwort-db.com.de

Wie entferne ich führende Leerzeichen in Python?

Ich habe eine Textzeichenfolge, die mit einer Anzahl von Leerzeichen beginnt und zwischen 2 und 4 variiert.

Was ist der einfachste Weg, um das führende Leerzeichen zu entfernen? (dh alles vor einem bestimmten Zeichen entfernen?)

"  Example"   -> "Example"
"  Example  " -> "Example  "
"    Example" -> "Example"
154
James Wanchai

Die lstrip() -Methode entfernt führende Leerzeichen, Zeilenumbrüche und Tabulatorzeichen an einem Zeichenfolgenanfang:

>>> '     hello world!'.lstrip()
'hello world!'

Bearbeiten

Wie Balpha in den Kommentaren hervorhob , um only Leerzeichen vom Anfang der Zeichenkette zu entfernen, sollte lstrip(' ') verwendet werden:

>>> '   hello world with 2 spaces and a tab!'.lstrip(' ')
'\thello world with 2 spaces and a tab!'

Verwandte Frage:

275
coobird

Die Funktion strip entfernt Leerzeichen am Anfang und Ende eines Strings.

my_str = "   text "
my_str = my_str.strip()

wird my_str bis "text".

77
Marquis Wang

Wenn Sie die Leerzeichen vor und hinter dem Wort entfernen möchten, behalten Sie die mittleren Leerzeichen bei.
Du könntest benutzen:

Word = '  Hello World  '
stripped = Word.strip()
print(stripped)
15
Tenzin

Verwenden Sie einen regulären Ausdruck, um alles vor einem bestimmten Zeichen zu entfernen:

re.sub(r'^[^a]*', '')

alles bis zum ersten 'a' entfernen. [^a] kann durch eine beliebige Zeichenklasse ersetzt werden, z. B. durch Word-Zeichen.

11
Curt J. Sampson

Die Frage befasst sich nicht mit mehrzeiligen Zeichenfolgen. Hier sehen Sie jedoch, wie Sie führende Leerzeichen aus einer mehrzeiligen Zeichenfolge entfernen, indem Sie Pythons Standardbibliotheks-Textumbruchmodul verwenden. Wenn wir eine Zeichenfolge hätten wie:

s = """
    line 1 has 4 leading spaces
    line 2 has 4 leading spaces
    line 3 has 4 leading spaces
"""

wenn wir print(s), würden wir eine Ausgabe erhalten wie:

>>> print(s)
    this has 4 leading spaces 1
    this has 4 leading spaces 2
    this has 4 leading spaces 3

und wenn wir textwrap.dedent benutzt haben:

>>> import textwrap
>>> print(textwrap.dedent(s))
this has 4 leading spaces 1
this has 4 leading spaces 2
this has 4 leading spaces 3
0
Jaymon