web-dev-qa-db-ja.com

Pythonで先頭の空白を削除するにはどうすればよいですか?

2〜4のさまざまなスペースで始まるテキスト文字列があります。

先頭の空白を削除する最も簡単な方法は何ですか? (つまり、特定のキャラクターの前のすべてを削除しますか?)

"  Example"   -> "Example"
"  Example  " -> "Example  "
"    Example" -> "Example"
147
James Wanchai

lstrip() メソッドは、文字列の先頭の空白、改行、タブ文字を削除します:

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

編集

balphaがコメントで指摘したように 、文字列の先頭からonlyスペースを削除するには、lstrip(' ')を使用する必要があります。

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

関連する質問:

264
coobird

関数stripは、文字列の先頭と末尾から空白を削除します。

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

my_str"text"に設定します。

75
Marquis Wang

Wordの前後にある空白を切り取りたいが、真ん中のものを残したい場合。
次を使用できます。

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

特定の文字の前のすべてを削除するには、正規表現を使用します。

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

最初の「a」までのすべてを削除します。 [^a]は、Word文字などの任意の文字クラスに置き換えることができます。

10
Curt J. Sampson

この質問は複数行の文字列には対応していませんが、ここでは pythonの標準ライブラリtextwrapモジュール を使用して複数行の文字列から先頭の空白を削除する方法を示します。次のような文字列がある場合:

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

print(s)の場合、次のような出力が得られます。

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

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