Pythonで避けて通れないスキル:ファイル操作をマスターしよう
Pythonを学ぶ上で欠かせないのが「ファイル操作」です。
プログラムで扱うデータを保存したり、外部から読み込んだりする場面は非常に多く、実務でも日常的に登場します。
たとえば、ログを残したり、CSVで管理しているデータを読み込んで分析したり、Web APIから取得したJSONデータを加工したり。
ファイルを自在に扱えるようになると、Pythonの使い道が一気に広がります。
筆者自身も学び始めたころ、ファイルが開けない・文字化けする・パスが通らないといったエラーに何度も悩まされました。
でも、一度基本を理解してしまえば、それらのトラブルは「仕組みを知れば怖くない」ものになります。
この記事では、Pythonでよく使う「テキスト」「CSV」「JSON」の3種類のファイル操作を、
初心者でも安心して実践できるように、やさしく丁寧に解説します。
1. ファイル操作の基本(open, read, write)
Pythonでファイルを扱うときは open() 関数を使います。
ファイルを開いたら「読み込み」「書き込み」などの操作を行い、最後に必ず閉じる必要があります。
ただし、with文を使うと、自動的にファイルを閉じてくれるため安全です。
# 書き込み
with open("sample.txt", "w", encoding="utf-8") as f:
f.write("こんにちは、Python!\n")
# 読み込み
with open("sample.txt", "r", encoding="utf-8") as f:
content = f.read()
print(content)
ファイルを開くモードには種類があり、"r" は読み込み、"w" は新規作成または上書き、"a" は追記モードです。
よくあるエラーと対処法:
FileNotFoundError:指定したファイルが存在しない → ファイル名・パスを確認、または"w"で新規作成UnicodeDecodeError:文字化け →encoding="utf-8"を指定PermissionError:権限がない → 管理者権限やファイルのロック状態を確認
2. CSVファイルの読み書き
CSVは表形式のデータを扱うときによく使われます。
Excelと互換性があり、Pythonでは csv モジュールを使って簡単に操作できます。
import csv
# 書き込み
with open("data.csv", "w", newline="", encoding="utf-8") as f:
writer = csv.writer(f)
writer.writerow(["名前", "年齢"])
writer.writerow(["太郎", 25])
writer.writerow(["花子", 30])
# 読み込み
with open("data.csv", "r", encoding="utf-8") as f:
reader = csv.reader(f)
for row in reader:
print(row)
ここでは newline="" を指定しています。これは改行コードの違い(Windows / macOS / Linux)によるずれを防ぐためです。
また、UTF-8で保存することで文字化けリスクも最小限にできます。
【実務でよくあるトラブル】
- Excelで開くと文字化け → UTF-8ではなく「UTF-8(BOM付き)」で保存することで改善
- 空行が入る →
newline=""の指定を忘れている可能性あり
3. JSONファイルの読み書き
JSON(ジェイソン)は、データのやり取りで最もよく使われる形式です。
Web APIやAIモデルの設定ファイル、アプリのデータ保存など、あらゆる場面で活躍します。
Pythonの json モジュールを使うと、辞書型やリストを簡単にファイル化できます。
import json
data = {
"name": "太郎",
"age": 25,
"skills": ["Python", "Django", "Pandas"]
}
# 書き込み
with open("data.json", "w", encoding="utf-8") as f:
json.dump(data, f, ensure_ascii=False, indent=2)
# 読み込み
with open("data.json", "r", encoding="utf-8") as f:
loaded_data = json.load(f)
print(loaded_data)
ensure_ascii=False を設定すると日本語がそのまま保存され、
indent=2 を付けると整形されて見やすいJSONになります。
複雑なオブジェクトを扱う際は、まず辞書やリストに変換してから保存すると安心です。
PythonオブジェクトのすべてがJSONに保存できるわけではありません。関数やカスタムクラスなどは直接保存できないため、文字列や辞書に変換してから保存します。
4. ファイルの保存場所を理解しよう
ファイルを保存するときにパスを指定しない場合、現在の作業ディレクトリ(実行中のフォルダ)に保存されます。
環境によっては場所が異なるため、どこにファイルができるのか確認しておきましょう。
特に Google Colab を使っている場合、デフォルトの作業ディレクトリは /content/ です。
Google Colabでの例
# ファイル保存
with open("test.txt", "w") as f:
f.write("Colabで保存したよ!")
# 保存先確認
!ls /content/
実行結果

ただし、Colabのセッションは一時的なため、ファイルはセッション終了とともに消えます。
長期的に残したい場合は Google Drive をマウントして保存しましょう。
from google.colab import drive
drive.mount('/content/drive')
# Google Driveに保存
with open("/content/drive/MyDrive/test.txt", "w") as f:
f.write("Google Driveに保存!")
実行結果: Googleアカウントの許可を求める画面が出ます。
許可すると「Mounted at /content/drive」と表示され、保存完了です。
Google Driveを開くと、ちゃんとファイルが保存されているのが確認できます。
まとめと次へのステップ
今回はPythonでのファイル操作(テキスト/CSV/JSON)を中心に学びました。
ファイルの読み書きは、データ分析・Web開発・AI学習のどれにも欠かせない基本スキルです。
最初はエラーが出ることもありますが、それは「成長のサイン」です。
エラー文をしっかり読んで、分からなければChatGPTなどのAIに質問してみましょう。
筆者も実際に、AIに助けてもらいながらコード理解を深めてきました。
プログラミング × AI の組み合わせは、まさに最強の学習環境です。
AIを上手に使いこなせば、独学でも確実にステップアップできます。
次回(#4 データ可視化【matplotlib入門】)では、今回扱ったデータを「グラフで見える化」する方法を学びます。
コードを書くだけでなく「結果を視覚的に理解する」力を身につけていきましょう!

