【Pythonファイル操作完全ガイド】txt, CSV, Excel, JSONを自由自在に操る!

Python

はじめに:データはプログラムの「外」にある!

Pythonプログラミングを学ぶと、次に挑戦したくなるのが「外部データとの連携」です。Webからダウンロードしたデータ、同僚から受け取ったExcelファイル、自分でメモしたテキストファイルなど、私たちの周りには様々な形式のデータがあふれています。

これらのファイルをPythonで自由に読み書きできれば、単なる計算機だったプログラムが、強力なデータ処理ツールへと進化します。

この記事では、Pythonを使ったファイル操作の基本から、データ分析の現場で必須となるCSVExcel、そしてWebでよく使われるJSONまで、主要なファイル形式の扱い方を1つにまとめて徹底解説します。このガイドを読めば、あなたもPythonでデータを自由自在に操れるようになります!

1. すべての基本:テキストファイル (.txt) の読み書き

まずは、あらゆるファイル操作の基礎となるテキストファイルの扱いです。

【最重要】with open() で安全にファイルを開く

ファイルを操作する基本は open() 関数ですが、必ず with ステートメントと組み合わせて使います。これにより、ファイルの閉じ忘れを防ぎ、安全にリソースを管理できます。

# with open('ファイル名', 'モード', encoding='utf-8') as f:
#     # ファイルに対する処理
  • モード'r' (読み込み), 'w' (上書き書き込み), 'a' (追記) が基本です。
  • encoding='utf-8': 日本語などの非英語文字を扱う際の文字化けを防ぐため、必ず指定しましょう。

書き込み ('w') と追記 ('a')

# 'w'モード:ファイルがなければ新規作成、あれば中身を消して上書き
with open('python_guide.txt', 'w', encoding='utf-8') as f:
    f.write("Pythonファイル操作ガイドへようこそ!\n")
    f.write("これは1行目のテキストです。\n")

# 'a'モード:ファイルがあれば末尾に追記
with open('python_guide.txt', 'a', encoding='utf-8') as f:
    f.write("この行は追記されました。\n")

print("python_guide.txt に書き込みと追記を行いました。")

読み込み ('r')

ファイルの内容を読み込むには、for ループを使うのが最もシンプルで効率的です。

print("\n--- python_guide.txt の内容 ---")
with open('python_guide.txt', 'r', encoding='utf-8') as f:
    for line in f:
        print(line.strip()) # .strip()で余分な改行を除去

2. 表形式データの定番:CSVファイル

CSV (Comma Separated Values) は、データをカンマで区切ったシンプルなテキスト形式で、Excelなどの表計算ソフトと親和性が高いのが特徴です。

pandasライブラリを使う方法(強く推奨)

データ分析を行うなら、pandas を使うのが最も簡単で強力です。

# pandasが未インストールの場合
pip install pandas

CSVへの書き込み (to_csv)

import pandas as pd

# 書き込むデータ(DataFrame)を作成
df_to_save = pd.DataFrame({
    '商品ID': ['P001', 'P002', 'P003'],
    '商品名': ['りんご', 'バナナ', 'みかん'],
    '価格': [150, 80, 120]
})

# CSVファイルに保存
# index=False: DataFrameのインデックス(行番号)を保存しない
# encoding='utf-8-sig': Excelで開いた際の文字化け対策
df_to_save.to_csv('products.csv', index=False, encoding='utf-8-sig')

print("\nproducts.csv を作成しました。")

CSVからの読み込み (read_csv)

# CSVファイルをDataFrameとして読み込み
df_loaded = pd.read_csv('products.csv')

print("\n--- products.csv から読み込んだデータ ---")
print(df_loaded)

3. ビジネスの必須スキル:Excelファイル (.xlsx)

ビジネスシーンではExcelが広く使われています。pandasを使えば、ExcelファイルもCSVと同じくらい簡単に扱えます。

# Excel操作に必要なライブラリをインストール
pip install openpyxl

Excelへの書き込み (to_excel)

import pandas as pd

# 分析結果のDataFrameを作成
df_report = pd.DataFrame({
    '支店': ['東', '西', '南', '北'],
    '平均売上': [2500, 3200, 1800, 2100],
    '顧客数': [120, 155, 98, 110]
})

# Excelファイルに書き込み
df_report.to_excel('sales_report.xlsx', sheet_name='月次報告', index=False)

print("\nsales_report.xlsx を作成しました。")

複数のシートに書き込む

pd.ExcelWriter を使うと、1つのExcelファイルに複数のシートを作成できます。

with pd.ExcelWriter('sales_report_detailed.xlsx') as writer:
    df_report.to_excel(writer, sheet_name='サマリー', index=False)
    df_to_save.to_excel(writer, sheet_name='商品マスタ', index=False)

print("\n複数のシートを持つ sales_report_detailed.xlsx を作成しました。")

Excelからの読み込み (read_excel)

# Excelファイルの 'サマリー' シートを読み込み
df_excel_summary = pd.read_excel('sales_report_detailed.xlsx', sheet_name='サマリー')

print("\n--- sales_report_detailed.xlsx の 'サマリー' シート ---")
print(df_excel_summary)

4. Web APIとの連携に:JSONファイル

JSON (JavaScript Object Notation) は、Web APIや設定ファイルで広く使われる、階層構造を持つことができるデータ形式です。Pythonの辞書やリストと非常によく似ています。

JSONへの書き込み (json.dump)

Pythonの標準ライブラリ json を使います。

import json

# 書き込むデータ(辞書)
user_profile = {
    "id": 101,
    "name": "Taro Yamada",
    "email": "taro@example.com",
    "subscribed": True,
    "interests": ["Programming", "Data Science", "AI"]
}

# JSONファイルに書き込み
# indent=4: 人が読みやすいようにインデントを付ける
# ensure_ascii=False: 日本語をそのまま保存する
with open('user_profile.json', 'w', encoding='utf-8') as f:
    json.dump(user_profile, f, indent=4, ensure_ascii=False)

print("\nuser_profile.json を作成しました。")

JSONからの読み込み (json.load)

# JSONファイルを読み込んでPythonの辞書に変換
with open('user_profile.json', 'r', encoding='utf-8') as f:
    loaded_profile = json.load(f)

print("\n--- user_profile.json から読み込んだデータ ---")
print(loaded_profile)
print(f"ユーザー名: {loaded_profile['name']}")

まとめ:適切なフォーマットでデータを操ろう!

今回解説した4つのファイル形式は、Pythonでデータを扱う上で非常に重要です。

  • テキストファイル: シンプルなメモやログに。
  • CSV: 表形式のデータ交換、大量のレコードの保存に。
  • Excel: ビジネスレポートの作成、Excelユーザーとのデータ共有に。
  • JSON: Web APIとの通信、複雑な設定情報の保存に。

これらのファイル操作をマスターすることで、あなたのPythonプログラムは外部の世界とつながり、その可能性は無限に広がります。ぜひ、実際にコードを書いて、それぞれのファイル形式の便利さを体感してみてください!

コメント