Python | 実践演習:ファイルからテキストを読み込んで処理する

Python
スポンサーリンク

ここでは「ファイルに書かれたテキストを Python で読み込んで、文字列として処理する実践演習」を、初心者でもスムーズに理解できるように段階的に進めます。


学ぶ目的

  • ファイルを開いて読み込む方法を覚える
  • 読み込んだテキストを 文字列 として操作できるようになる
  • 文字列メソッド(split, strip, replace, count など)の実践

ステップ 1:サンプルファイルを用意しよう

まず、同じフォルダに fruits.txt というファイルを作って、次の内容を入れてください。

apple, banana , orange, apple, banana, grape

ステップ 2:ファイルを開いて中身を読む

Pythonでファイルを開くには、open() 関数を使います。

# fruits.txt を開いて内容を1つの文字列として読み込む
with open("fruits.txt", "r", encoding="utf-8") as f:
    text = f.read()

print("ファイルの中身:", text)
Python

💡 with を使うと、自動的にファイルを閉じてくれるので安全です。


ステップ 3:文字列として加工してみよう

読み込んだ文字列 text は、そのままだと「カンマ区切りの1行文字列」です。
これを分割して、整理してみましょう。

# カンマで区切ってリスト化
fruits = text.split(",")

# 各要素の前後の空白を削除
fruits = [f.strip() for f in fruits]

print(fruits)
Python

出力:

['apple', 'banana', 'orange', 'apple', 'banana', 'grape']

ステップ 4:登場回数を数えてみよう

次に、各フルーツの登場回数を数えます。

counts = {}
for f in fruits:
    counts[f] = counts.get(f, 0) + 1

print(counts)
Python

出力:

{'apple': 2, 'banana': 2, 'orange': 1, 'grape': 1}

ステップ 5:結果を別ファイルに保存してみよう

結果を「まとめファイル」として書き出してみましょう。

with open("summary.txt", "w", encoding="utf-8") as f:
    for name, count in counts.items():
        f.write(f"{name}: {count}\n")
Python

書き出された summary.txt の内容:

apple: 2
banana: 2
orange: 1
grape: 1

ステップ 6:すべてをまとめた完成版スクリプト

# fruit_counter.py
# ファイルからテキストを読み込んで、フルーツの出現回数を数える

# 1. ファイルを開く
with open("fruits.txt", "r", encoding="utf-8") as f:
    text = f.read()

# 2. 文字列を加工(カンマ区切り → リスト)
fruits = [x.strip() for x in text.split(",")]

# 3. 回数を数える
counts = {}
for f in fruits:
    counts[f] = counts.get(f, 0) + 1

# 4. 結果を表示
print("集計結果:")
for name, count in counts.items():
    print(f"{name}: {count}")

# 5. 結果をファイルに書き出し
with open("summary.txt", "w", encoding="utf-8") as f:
    for name, count in counts.items():
        f.write(f"{name}: {count}\n")

print("\n→ summary.txt に結果を保存しました。")
Python

発展課題(やってみよう)

  1. 重複のないリスト を作りたいとき、どうすればいい?
    → ヒント:set() を使うと自動で重複が消えます。 unique_fruits = set(fruits) print(unique_fruits)
  2. 辞書をソートして出力してみよう。
    → 回数の多い順に並べたい場合: for name, count in sorted(counts.items(), key=lambda x: x[1], reverse=True): print(name, count)
  3. ファイルの行ごとに読み込む with open("data.txt", "r", encoding="utf-8") as f: for line in f: print(line.strip())

✅ まとめ

やったことキーポイント
ファイルを開くopen("ファイル名", "r")
読み込む.read() または .readlines()
分割split(",")
前後の空白削除strip()
回数カウントdict.get() パターン
結果を保存open(..., "w") + write()

Python
スポンサーリンク
シェアする
@lifehackerをフォローする
スポンサーリンク
タイトルとURLをコピーしました