ここでは「ファイルに書かれたテキストを 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発展課題(やってみよう)
- 重複のないリスト を作りたいとき、どうすればいい?
→ ヒント:set()を使うと自動で重複が消えます。unique_fruits = set(fruits) print(unique_fruits) - 辞書をソートして出力してみよう。
→ 回数の多い順に並べたい場合:for name, count in sorted(counts.items(), key=lambda x: x[1], reverse=True): print(name, count) - ファイルの行ごとに読み込む
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() |
