Python 空白・改行を含む文字列から文字数を取得する方法-MAYA アーティストのスクリプト入門-

python_get_len_str_strip_topimage

Pythonで文字列を操作する方法は様々ありますが「文字数の取得」もその一つ。

Pythonで文字数を取得する方法自体はとても簡単なのですが、操作する文字列も様々なので、それに対応した取得方法をする必要があります。

改行コードが入った文字列、スペースが入った文字列、前後にタブが入った文字列

これらが文字列に入っている状態で文字数を取得すると、改行コードやスペースも数に含まれてしまい、文字だけの文字数を取得する事ができません。

純粋な文字だけの文字数を取得したい場合は、それに対応した処理をする必要があります。

この記事では、Pythonで様々な文字列から文字数を取得する方法を紹介します。

文字列の文字数を取得する

Pythonで文字列の文字数を取得する方法

len(文字列)

len()はリストやタプルなどの配列の数を取得する場合に使いますが、文字数を取得する時にも使います。

test_list = ["A","B","C","D","E","F"]

print(len(test_list))


結果:

リストに入っている値の個数を取得できました。

6



今度はlen()を使って文字列の文字数を取得してみます。

l_str = "ABCDEFG"

print(len(l_str))


結果:

文字列の文字数を取得できました

7

空白(スペースやタブ)が入った文字列の文字数を取得する

スペースを含んだ文字列の文字数をlen()を使って取得してみます。

l_str = "A B C D E F G"

print(len(l_str))


結果:

スペースを文字数に含めた数を取得しました。

13


もちろん意図してスペースを含めた文字数を取得する場合はこのままで良いのですが、スペースを含めない純粋な文字数を取得する場合は、len()で文字数を取得する前に文字列からスペースを削除する必要があります。

文字列に含まれる 空白(スペースやタブ) を削除するには

replace()

を使います。

replace()は文字列の指定文字列を置き換える場合に使いますが、置き換える文字列を「””」とすれば、削除する方法として使うことが出来ます。

replace(“元の文字列”,”置き換える文字列”)

l_str = "A B C D E F G"

print(l_str.replace(" ",""))


結果:

文字列からスペースが削除されました。

ABCDEFG


文字列からスペースを削除してから、len()で文字数を取得します。

l_str = "A B C D E F G"

print(len(l_str.replace(" ","")))


結果:

スペースを抜いた純粋な文字数を取得できました。

7


スペースだけではなく、改行コードを削除する場合は元の文字列に改行コードを指定すれば削除できます。

l_str = "ABC\nDEFG"

print(l_str)
print(len(l_str))
print(len(l_str.replace("\n","")))


結果:

ABC
DEFG
8
7

前後にタブや改行コードが入った文字列の文字数を取得する

英文 ”    Good Morning\n” など先頭と末尾の空白や改行コードを削除しつつ、文字列中の空白は残して文字数を取得したい場合があります。

先頭と末尾に空白や改行コードが入っている場合は

strip() lstrip() rstrip()

を使います。

strip()・lstrip()・rstrip() は指定した文字列が、文字列の先頭や末尾にある場合に削除する事ができます。

l_str = "xzxABCDEFGxzxz"

print(l_str.strip("zx"))


結果:

先頭と末尾にあった ”zx“ が削除されました。

ABCDEFG



strip()は文字列の先頭と末尾の両方から削除します。
lstrip()は文字列の先頭から削除します。
rstrip()は文字列の末尾から削除します。


上記のように strip()・lstrip()・rstrip() は指定した文字列を削除する事ができますが、文字列を指定しない場合は空白(スペースやタブ)や改行コードを削除します。

l_str = "    Good Morning\n"

print(l_str.strip())
print("----")


結果:

文字列の中の空白は残したまま、先頭と末尾の空白と改行コードだけが削除されました。

Good Morning
—-


文字数を取得します。

l_str = "    Good Morning\n"

print(len(l_str.strip()))


結果:

先頭と末尾の空白と改行コードを削除して文字数を取得する事ができました。

12



長文の抜粋文をGUIの文字数を決めた表示枠に収める場合は、この方法が使えるでしょう。

まとめ

Python 空白・改行を含む文字列から文字数を取得する方法を紹介しました。

文字数を取得するには
len(文字列)

文字列に空白(スペースやタブ)が含まれた文字列の場合
len(文字列.replace())

文字列の前後に空白(スペースやタブ)・改行コードがある場合
len(文字列.strip())
len(文字列.lstrip())
len(文字列.rstrip())


テキストファイルから文字列を読み込むと、改行やスペースなどが含まれていて純粋な文字数を取得できる事はまずありません。

文字数を正しく取得できないとバグの原因になるので、この記事で紹介した方法を参考にしてもらえればと思います。


Twitter Facebook Pocket LINE はてブ

おすすめの関連記事
コチラの記事も読まれています
あわせてよく読まれている記事