Pythonのテキスト処理を徹底解説!

Pythonのテキスト処理(文字列処理)は、プログラムで文字列データを連結、分割、検索、置換、整形するといった、あらゆる操作を行うことです。📝

Webサイトから取得した情報、ファイルの内容、ユーザーからの入力など、プログラムが扱うデータの多くはテキスト形式であるため、これは全てのエンジニアにとって必須のスキルです。


文字列の連結 (f-string) 🤝

変数と文字列を組み合わせる場合、f-string(フォーマット済み文字列リテラル)を使うのが現代のPythonでは最も簡単で推奨される方法です。

文字列の開始引用符の前に f を置き、変数名を波括弧 {} で囲むだけで、簡単に文字列内に値を埋め込むことができます。

user_name = "Yusei"
user_age = 28

# f-stringを使った連結
profile_message = f"こんにちは、{user_name}です。年齢は{user_age}歳です。"
print(profile_message)
# 出力: こんにちは、Yuseiです。年齢は28歳です。

+演算子で連結するよりも、コードがずっと読みやすくなりますね。


文字列の分割と結合 ⛓️

split(): 文字列をリストに分割する

split()は、指定した区切り文字で文字列を分割し、リストを返します。CSVデータやログファイルの解析で頻繁に使われます。

csv_data = "apple,banana,cherry,orange"

# カンマ(,)で分割
fruits_list = csv_data.split(",")
print(fruits_list)
# 出力: ['apple', 'banana', 'cherry', 'orange']

join(): リストを文字列に結合する

join()split()の逆の操作です。文字列のリストを、指定した区切り文字で連結して一つの文字列を返します。

fruits_list = ["apple", "banana", "cherry"]

# ハイフン(-)で結合
fruits_str = "-".join(fruits_list)
print(fruits_str)
# 出力: apple-banana-cherry

区切り文字.join(リスト) という少し変わった書き方なので注意してください。


検索と置換 🔍

in: 特定の文字列が含まれるか調べる

in演算子を使うと、ある文字列内に特定のサブ文字列が含まれているかを True/False で簡単に確認できます。

message = "Hello, world!"
print("world" in message) # True
print("python" in message) # False

replace(): 文字列を置換する

replace()は、文字列内にある特定のサブ文字列を、別の文字列にすべて置換します。

sentence = "I like cats. Cats are cute."

# "cats"を"dogs"に置換
new_sentence = sentence.replace("cats", "dogs")
print(new_sentence)
# 出力: I like dogs. Dogs are cute.


整形とクリーニング ✨

strip(): 前後の不要な空白を削除する

strip()は、文字列の先頭と末尾にある空白(スペース、タブ、改行)を取り除きます。ユーザー入力やファイルから読み込んだデータをきれいにするときに必須です。

raw_input = "   Hello, world!   \n"

cleaned_input = raw_input.strip()
print(f"'{cleaned_input}'")
# 出力: "'Hello, world!'"

upper(), lower(): 大文字・小文字に変換する

upper()はすべての文字を大文字に、lower()はすべて小文字に変換します。大文字と小文字を区別せずに文字列を比較したい場合などによく使います。

text = "Python is Fun!"
print(text.upper()) # PYTHON IS FUN!
print(text.lower()) # python is fun!


実践例:ログデータの簡易解析 ⚙️

これらのメソッドを組み合わせると、実用的な処理ができます。

# 元のログデータ
log = "  2025-10-10 INFO: User 'admin' logged in.  "

# 1. 整形する
cleaned_log = log.strip()

# 2. ログレベルとメッセージを分割する
parts = cleaned_log.split(": ", 1) # 1回だけ分割する
log_level = parts[0].split(" ")[1]
message = parts[1]

# 3. ユーザー名を抽出するために置換を使う
user_name = message.replace("User '", "").replace("' logged in.", "")

print(f"ログレベル: {log_level}")
print(f"メッセージ: {message}")
print(f"ユーザー名: {user_name}")


まとめと次のステップ

今回紹介したメソッドは、Pythonにおけるテキスト処理の基本であり、最もよく使われるものです。これらをマスターするだけで、多くの日常的なデータ処理タスクに対応できます。

さらに複雑なパターン(例えば、メールアドレスやURLの形式に一致するかどうかなど)を扱いたい場合は、次のステップとして正規表現の世界を探求することをお勧めします。正規表現は、テキスト処理の究極のツールです!

セイ・コンサルティング・グループの新人エンジニア研修のメニューへのリンク

投稿者プロフィール

山崎講師
山崎講師代表取締役
セイ・コンサルティング・グループ株式会社代表取締役。
岐阜県出身。
2000年創業、2004年会社設立。
IT企業向け人材育成研修歴業界歴20年以上。
すべての無駄を省いた費用対効果の高い「筋肉質」な研修を提供します!
この記事に間違い等ありましたらぜひお知らせください。