今回は文字列の前後の空白文字を除去する方法を紹介します。
前後の空白文字を除去する: strip()メソッド
文字列のstrip()
メソッドを使うと、文字列の前後(先頭と末尾)の空白文字を除去できます。
使い方は以下の通りです。
文字列.strip()
実際に使ってみましょう。
>>> s = ' こんにちは ' >>> s.strip() 'こんにちは'
「こんにちは」の前後にはそれぞれ3つずつ半角スペースがありますが、それらが除去されたことを確認できました。
このように、文字列前後の連続する空白文字がまとめて除去されます。
なお、このメソッドは空白文字を除去した新しい文字列を返すため、元の文字列s
はそのままです。
>>> # 元の文字列は変更されない >>> s ' こんにちは '
strip()
メソッドは前後の空白文字を除去しましたが、文字列の先頭部分の空白文字のみ除去したい場合や、末尾部分の空白文字を除去したい場合もあります。
これにはlstrip()
メソッドやrstrip()
メソッドが使えます。
先頭の空白文字を除去する: lstrip()メソッド
文字列の先頭部分の空白文字のみ除去したい場合、lstrip()
メソッドが使えます。
これは以下のように、先頭部分の空白文字のみ除去した文字列を返します。
>>> s.lstrip() 'こんにちは '
末尾の空白文字を除去する: rstrip()メソッド
文字列の末尾部分の空白文字のみ除去したい場合、rstrip()
メソッドが使えます。
これは以下のように、末尾部分の空白文字のみ除去した文字列を返します。
>>> s.rstrip() ' こんにちは'
なお、lstrip()
のl
はleft
(左)、rstrip()
のr
はright
(右)と考えれば覚えやすいです。
除去対象の空白文字
除去対象の空白文字は半角スペースだけではなく、改行文字やタブ文字も含まれます。
そのため、以下のようにrstrip()
メソッドで末尾の改行文字を除去できます。
>>> # 改行文字を含む文字列 >>> s2 = 'こんにちは\n' >>> s2.rstrip() 'こんにちは'
これはたとえばopen()
関数でテキストファイルを開き、for文で1行ずつ処理する場合、strip()
やrstrip()
を使って末尾の改行文字を除去するのに使えます。
with open("sample.txt") as f: for line in f: # 末尾の改行文字を除去 line = line.rstrip() ...
まとめ
- 前後の空白文字を除去するには
strip()
メソッドを使う - 先頭の空白文字を除去するには
lstrip()
メソッドを使う - 末尾の空白文字を除去するには
rstrip()
メソッドを使う - 空白文字には改行文字やタブ文字も含まれる