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


180

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

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

"  Example"   -> "Example"
"  Example  " -> "Example  "
"    Example" -> "Example"

回答:


317

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

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

編集する

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

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

関連する質問:


10
ただし、そのlstripは、スペース(タブなど)よりも多い可能性がある先頭の空白を削除することに注意してください。通常はそれが必要です。スペースとスペースのみを削除する場合は、 "bla" .lstrip( "")を呼び出します
balpha

1
@balpha:指摘してくれてありがとう!私はそれを答えに加えました。
coobird

3
何年もプログラミングをしていて、これを知らなかった、命の恩人
Chris Hawkes

3
新しいPythonプログラマーにとって、Pythonの文字列は不変であることを覚えておくと便利です。そのため、文字列 'string_a'を使用している場合、string_a.lstrip()によって文字列自体が変更されると思うかもしれませんが、実際にはstring_a.lstrip()の値をそれ自体または新しい変数のいずれかに割り当てる必要があります(例: "string_a = string_a.lstrip()")。
フィールド

2
注意:lstripがあるとして()がもある()(ストリップ)とrstrip
アレクサンダーStohr

86

この関数stripは、文字列の最初と最後から空白を削除します。

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

に設定さmy_str"text"ます。


17

単語の前後の空白を削除したいが、中央の空白は残したい場合。
あなたは使うことができます:

word = '  Hello World  '
stripped = word.strip()
print(stripped)

これは真ん中のスペースをそのままにして印刷'Hello World'することは注目に値します。疑問に思っている人は誰でも、元の質問が特に先頭のスペースを削除するように求めていたため、投票が拒否されたと思います。
conapart3

2
docs.python.org/3/whatsnew/3.0.html Print is A Function printステートメントは、古いprintステートメントの特別な構文のほとんどを置き換えるキーワード引数を備えたprint()関数に置き換えられました(PEP 3105)。
mbrandeis 2017

@mbrandeisそのステートメントはここでどのように関連していますか?
MilkyWay90 2018

12

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

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

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


3
男は「最も簡単で最も簡単な方法」を求めたと思います
いいえ、

10
確かに、しかし彼は(おそらく不注意で)より一般的な問題の解決策を求めました、すなわち「特定の文字の前にすべてを削除しますか?」そしてこれはそのより一般的な解決策です。
cjs 2009

1

質問では複数行の文字列は扱いませんが、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
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.