プログラミング学習

ゼロから学ぶPython #3 ファイル操作(テキスト/CSV/JSON)

記事内に商品プロモーションを含む場合があります

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:権限がない → 管理者権限やファイルのロック状態を確認

筆者も最初のころは、ファイルを開いたまま別の処理を走らせて「PermissionError」で詰まることがよくありました。
今では with open() を使う癖をつけて、そうしたトラブルを防げています。

2. CSVファイルの読み書き

CSVは表形式のデータを扱うときによく使われます。
Excelと互換性があり、Pythonでは csv モジュールを使って簡単に操作できます。

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="" の指定を忘れている可能性あり

筆者もCSVを扱ったとき、改行が1行おきに入ってしまい「なぜ?」と悩みました。
AIにエラーメッセージや挙動を質問したら、「newline指定が抜けている」と教えてくれて即解決。
こういうとき、AIは頼れる学習パートナーです。

3. JSONファイルの読み書き

JSON(ジェイソン)は、データのやり取りで最もよく使われる形式です。
Web APIやAIモデルの設定ファイル、アプリのデータ保存など、あらゆる場面で活躍します。

Pythonの json モジュールを使うと、辞書型やリストを簡単にファイル化できます。

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保存例

ただし、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アカウントの許可を求める画面が出ます。

Drive連携

許可すると「Mounted at /content/drive」と表示され、保存完了です。

マウント完了

Google Driveを開くと、ちゃんとファイルが保存されているのが確認できます。

Driveファイル保存

まとめと次へのステップ

今回はPythonでのファイル操作(テキスト/CSV/JSON)を中心に学びました。
ファイルの読み書きは、データ分析・Web開発・AI学習のどれにも欠かせない基本スキルです。

最初はエラーが出ることもありますが、それは「成長のサイン」です。
エラー文をしっかり読んで、分からなければChatGPTなどのAIに質問してみましょう。
筆者も実際に、AIに助けてもらいながらコード理解を深めてきました。

プログラミング × AI の組み合わせは、まさに最強の学習環境です。
AIを上手に使いこなせば、独学でも確実にステップアップできます。

次回(#4 データ可視化【matplotlib入門】)では、今回扱ったデータを「グラフで見える化」する方法を学びます。
コードを書くだけでなく「結果を視覚的に理解する」力を身につけていきましょう!

AIブロガー
筆者:yuki
Python未経験からAIと対話しながらコード作成。副業×自動化×プログラミングの可能性を模索中。 ▷詳細プロフィールはこちら