Caution
お使いのブラウザはJavaScriptが実行できない状態になっております。
当サイトはWebプログラミングの情報サイトの為、
JavaScriptが実行できない環境では正しいコンテンツが提供出来ません。
JavaScriptが実行可能な状態でご閲覧頂くようお願い申し上げます。
文字列.strip() / 文字列.lstrip() / 文字列.rstrip()
文字列の先頭・末尾から空白や指定した文字を取り除くメソッドです。ユーザー入力の整形やデータクレンジングに使われます。
構文
# 文字列の両端から空白または指定した文字を取り除きます。 文字列.strip(除去文字=None) # 文字列の先頭(左端)からのみ取り除きます。 文字列.lstrip(除去文字=None) # 文字列の末尾(右端)からのみ取り除きます。 文字列.rstrip(除去文字=None)
関数一覧
| メソッド | 概要 |
|---|---|
| str.strip(chars=None) | 文字列の両端から、指定した文字のいずれかが続く限り取り除きます。chars を省略すると空白文字(スペース・タブ・改行など)を取り除きます。 |
| str.lstrip(chars=None) | 文字列の先頭(左端)から指定した文字を取り除きます。 |
| str.rstrip(chars=None) | 文字列の末尾(右端)から指定した文字を取り除きます。 |
サンプルコード
# strip() で前後の空白を取り除きます。
text = " こんにちは、Python! "
print(text.strip()) # 'こんにちは、Python!'
print(len(text)) # 19(元の文字数)
print(len(text.strip())) # 11(空白除去後)
# タブや改行も取り除きます。
line = "\t\n データ \n\t"
print(repr(line.strip())) # 'データ'
# ユーザー入力を整形する典型的な使い方です。
# user_input = input("名前を入力してください: ")
# name = user_input.strip() # 前後の空白を取り除いてから使います。
# lstrip() で先頭の文字だけ取り除きます。
path = "///usr/local/bin"
print(path.lstrip("/")) # usr/local/bin
number_str = "000042"
print(number_str.lstrip("0")) # 42
# rstrip() で末尾の文字だけ取り除きます。
filename = "report.txt..."
print(filename.rstrip(".")) # report.txt
# ファイルから読み込んだ行末の改行を取り除きます。
line_with_newline = "データの行\n"
clean_line = line_with_newline.rstrip("\n")
print(repr(clean_line)) # 'データの行'
# chars 引数の注意点:文字列ではなく「文字のセット」として扱われます。
# "abc" を渡すと a, b, c の「いずれか」が連続する間、除去します。
print("aaabbccXYZccbba".strip("abc")) # XYZ
print("hello".strip("helo")) # (空文字列になります)
# CSV の余分なスペースを取り除く実用例です。
csv_line = " 太郎 , 20 , 東京 "
fields = [field.strip() for field in csv_line.split(",")]
print(fields) # ['太郎', '20', '東京']
# removeprefix() と removesuffix()(Python 3.9以降)も便利です。
url = "https://example.com"
domain = url.removeprefix("https://")
print(domain) # example.com
filename2 = "report.txt"
name = filename2.removesuffix(".txt")
print(name) # report
概要
『strip()』の引数 chars は部分文字列ではなく除去する「文字のセット」として扱われます。例えば『"abc".strip("ab")』は「"ab" というまとまり」を取り除くのではなく、「a または b」が端に続く限り取り除きます。プレフィックス・サフィックスとしてまとまりで除去したい場合は『removeprefix()』または『removesuffix()』(Python 3.9以降)を使ってください。
これらのメソッドはすべて新しい文字列を返します。元の文字列は変更されません。ファイルを1行ずつ読み込む際は、行末の改行文字を除去するために『rstrip("\n")』や『rstrip()』が頻繁に使われます。
文字列の分割と組み合わせてデータクレンジングを行う場合は『str.split()』も参照してください。文字列の検索には『str.find() / str.index()』を参照してください。
記事の間違いや著作権の侵害等ございましたらお手数ですがこちらまでご連絡頂ければ幸いです。