web-dev-qa-db-fra.com

Comment puis-je supprimer les espaces de début de page en Python?

J'ai une chaîne de texte qui commence par un nombre d'espaces, variant entre 2 et 4.

Quel est le moyen le plus simple de supprimer les espaces blancs de tête? (c.-à-d. tout supprimer avant un certain caractère?)

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

La méthode lstrip() supprime les espaces, les caractères de nouvelle ligne et de tabulation d’avant une chaîne commençant par:

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

Modifier

Comme balpha l'a souligné dans les commentaires , pour supprimer uniquement les espaces du début de la chaîne, lstrip(' ') doit être utilisé:

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

Question connexe:

275
coobird

La fonction strip supprimera les espaces du début et de la fin d'une chaîne.

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

définira my_str sur "text".

77
Marquis Wang

Si vous voulez couper les espaces blancs avant et derrière la Parole, gardez ceux du milieu.
Vous pouvez utiliser:

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

Pour tout supprimer avant un caractère, utilisez une expression régulière:

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

tout supprimer jusqu'au premier "a". [^a] peut être remplacé par toute classe de caractères de votre choix, telle que les caractères Word.

11
Curt J. Sampson

La question ne traite pas des chaînes multilignes, mais voici comment vous pouvez supprimer les espaces blancs d'une chaîne multiligne à l'aide de module textwrap de la bibliothèque standard de python . Si nous avions une chaîne comme:

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

si nous print(s) nous aurions une sortie comme:

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

et si nous utilisions textwrap.dedent:

>>> 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