Python

Pythonを使った空白文字や任意の文字を削除する方法を詳しく解説

2021年9月17日

Pythonで文字と空白の削除方法

Pythonで空白を削除するには、stripを使って削除します。

PHPやJavaScriptとか他の言語からPythonを勉強すると「python trim」とかで空白を削除するために検索キーワード入れたりしていませんか?

私もそうだったのでもう一度書きますが、Pythonで空白文字などを削除するには「strip」です!

stripで削除できるのは、任意の文字列と半角スペース(半角空白)、全角スペース(全角空白)、改行になります。

この記事では、stripの使い方について解説しています。

先頭と末尾の空白や改行を削除する方法

stripによる先頭と末尾の空白削除

先頭と末尾の空白を削除するには、stripに削除したいテキストを入れます。

下記のコードは、半角スペースと全角スペース、WindowsおよびUnix、Linux系の改行文字で削除できるか確認してみましょう。

text = ' Pythonで空白を削除する '
text2 = ' Pythonで空白を削除する '
text3 = '\r\nPythonで空白を削除する\n'

after = str.strip(text)
after2 = str.strip(text2)
after3 = str.strip(text3)

各結果は、printと長さを調べるlenを使って表示しています。

print(len(文字列), 文字列)

まずは半角スペースの結果を確認します。

16  Pythonで空白を削除する 
14 Pythonで空白を削除する

textを直接表示すると前後に半角スペースが残っており、合計文字数が16文字になります。

afterを表示すると、先頭と末尾の半角スペースが削除され、合計文字数が14文字になりました。

問題なく削除されています。

次に全角スペースが削除されているか確認します。

16  Pythonで空白を削除する 
14 Pythonで空白を削除する

textを確認しましたが、半角スペース同様に合計文字数が16文字となっています。

afterを表示しても、先頭と末尾の空白が削除されて、合計文字数が14文字です。

こちらも問題なく削除されています。

次にWindowsの改行文字(\r\n)とUnixおよびLinuxだと(\n)が削除されるのか確認してみます。

17 
Pythonで空白を削除する

14 Pythonで空白を削除する

textだと、17を表示後に改行が入り、その後の末尾の「〜削除する」の後に改行されています。

しかし、afterでは合計文字数が14文字で表示されているので、問題なく削除できています。

lstripによる先頭の空白文字を削除

lstripによる先頭の空白を削除

lstripを使えば、先頭の空白文字を削除することができます。

text = '          先頭の空白を削除'
print(len(text), text)
print(len(text), str.lstrip(text))

結果は下記のように表示されます。

18           先頭の空白を削除
18 先頭の空白を削除

本当に先頭行だけを削除しているか、末尾にも空白を入れてみます。

処理としては、先頭の空白を消した後に末尾の空白を□に置き換えてみます。

text = '          先頭の空白を削除          ' # 末尾に空白を追加
print(len(text), text)
print(len(text), str.lstrip(text).replace(' ', '□')) # 末尾の空白を□に置き換え

実行すると末尾の空白は□に置き換えられたので、先頭の空白文字のみ削除されています。

28           先頭の空白を削除          
28 先頭の空白を削除□□□□□□□□□□

削除される文字は、strip同様に半角スペース、全角スペース、改行文字の削除になります。

rstripによる末尾の空白文字を削除

rstripによる末尾の空白削除

lstripは先頭の空白文字を削除しましたが、rstripは末尾の空白文字を削除します。

先頭の空白を削除で使ったコードを、末尾の削除をするために変更して確認します。

text = '         末尾の空白を削除          '
print(len(text), text)
print(len(text), str.rstrip(text).replace(' ', '□') # lstripからrstripへ変更

結果は、問題なく末尾の空白文字だけを削除することができました。

27          末尾の空白を削除          
27 □□□□□□□□□末尾の空白を削除

stripは任意の文字も消すことができた!?

Pythonで任意の文字を消す

stripやlstrip、rstripは空白文字の他にも任意の文字を消すことができます。

しかし、消せるのは先頭もしくは末尾にある任意の文字になるので、間にある文字に関しては削除することがはできません。

text = 'Pythonを使って、 任意の文字を削除します。'
print(text.strip('Python'))
print(text.strip('使って'))

最初に紹介したstripの書き方は、str.stripでした。

しかし任意も文字を削除するには、文字列が入った変数にstripをつけて、引数を削除したい文字を入れます。

結果は下記になります。

を使って、 任意の文字を削除します。
Pythonを使って、 任意の文字を削除します。

「使って」を削除しようとしても途中の文字のため、stripやlstrip、rstripでは削除することはできません。

まとめ

Pythonを使って、空白文字を消すにはstripを使って削除します。

stripは、先頭と末尾の半角スペースや全角スペース、改行文字などを削除することができます。

stripの他にも、lstripやrstripがあります。

これらは、どちらか片方の先頭の空白文字を消したり、末尾の空白文字を消すときに使います。

他にも任意の文字も消すことができるので、末尾の「。」「、」の他に、先頭だけ固定されるようなIDなどを消去するのに役立ちそうですね。

Python 入門編
【入門編】Pythonの基本的な書き方を解説
Pythonを使ってプログラミングをしたい初心者や、他の言語からPythonを学習したい方を対象にしたPythonの入門編になります。 そのため、Pythonのインストールから基本的な処理の書き方などをサンプルを交えて解説しています。 Py ...

続きを見る

Udemyへ

今後の人生を豊かにする為にキャリアアップのステップとして、自分への投資をしてみませんか?

-Python
-