Pythonでファイル操作をマスター!読み書き・CSV・JSONの基本を徹底解説

Pythonでのファイル操作(読み書き、CSV、JSON)をwith文を使って安全に実装する方法を解説。初心者でもわかるサンプルコード付き。

Pythonファイル操作読み書きCSVJSONwith2026/5/25

はじめに

Pythonでファイルを読み書きする処理は、データ分析やWeb開発など様々な場面で必要になります。この記事では、基本的なテキストファイルの読み書きから、CSVやJSONといった構造化データの扱い方まで、with文を使った安全な方法で解説します。

ファイルを開く・閉じる:with文を使おう

ファイル操作の基本は、ファイルを開いて(open)、処理をして、閉じる(close)ことです。しかし、エラーが発生した場合などにcloseを忘れるとリソースリークの原因になります。そこで推奨されるのがwith文です。

with open('sample.txt', 'r', encoding='utf-8') as f:
    content = f.read()
<h1>withブロックを抜けると自動的にcloseされる</h1>

open関数のモードは以下の通りです。

  • 'r': 読み込み
  • 'w': 書き込み(上書き)
  • 'a': 追記
  • 'r+': 読み書き両方
  • 'b': バイナリモード(例:'rb')
  • テキストファイルの読み書き

    ファイルの読み込み

    ファイル全体を読み込むにはread()、1行ずつ読み込むにはreadline()やイテレーションを使います。

    <h1>全体を読み込み</h1>
    with open('sample.txt', 'r', encoding='utf-8') as f:
        content = f.read()
    

    <h1>1行ずつ読み込み</h1> with open('sample.txt', 'r', encoding='utf-8') as f: for line in f: print(line.strip()) # 改行除去

    ファイルへの書き込み

    書き込みはwrite()メソッドを使います。

    with open('output.txt', 'w', encoding='utf-8') as f:
        f.write('Hello, Python!\n')
        f.write('ファイル操作の練習\n')
    

    追記したい場合はモードを'a'にします。

    CSVファイルの読み書き

    CSV(Comma-Separated Values)は表形式のデータを扱うのに便利です。Pythonの標準ライブラリcsvを使います。

    CSVの読み込み

    import csv
    

    with open('data.csv', 'r', encoding='utf-8') as f: reader = csv.reader(f) for row in reader: print(row) # リストとして取得

    辞書形式で読み込むにはcsv.DictReaderを使います。

    with open('data.csv', 'r', encoding='utf-8') as f:
        reader = csv.DictReader(f)
        for row in reader:
            print(row['name'], row['age'])
    

    CSVの書き込み

    import csv
    

    with open('output.csv', 'w', encoding='utf-8', newline='') as f: writer = csv.writer(f) writer.writerow(['名前', '年齢', '都市']) writer.writerow(['Alice', 30, 'Tokyo']) writer.writerow(['Bob', 25, 'Osaka'])

    newline=''を指定することで、余計な改行を防げます。

    JSONファイルの読み書き

    JSON(JavaScript Object Notation)は設定ファイルやAPIのデータ形式として広く使われています。jsonモジュールを使います。

    JSONの読み込み

    import json
    

    with open('data.json', 'r', encoding='utf-8') as f: data = json.load(f) # 辞書やリストとして取得

    JSONの書き込み

    import json
    

    data = { 'name': 'Alice', 'age': 30, 'city': 'Tokyo' }

    with open('output.json', 'w', encoding='utf-8') as f: json.dump(data, f, ensure_ascii=False, indent=4)

    ensure_ascii=Falseで日本語をそのまま出力、indent=4で見やすく整形します。

    応用例:CSVからJSONへの変換

    実際の業務では、CSVデータをJSONに変換するケースがよくあります。

    import csv
    import json
    

    csv_file = 'input.csv' json_file = 'output.json'

    data = [] with open(csv_file, 'r', encoding='utf-8') as f: reader = csv.DictReader(f) for row in reader: data.append(row)

    with open(json_file, 'w', encoding='utf-8') as f: json.dump(data, f, ensure_ascii=False, indent=4)

    エラーハンドリング

    ファイル操作では、ファイルが存在しない、権限がないなどのエラーが発生する可能性があります。try-exceptで適切に処理しましょう。

    try:
        with open('nonexistent.txt', 'r') as f:
            content = f.read()
    except FileNotFoundError:
        print('ファイルが見つかりません。')
    except PermissionError:
        print('ファイルを開く権限がありません。')
    

    まとめ

    Pythonでのファイル操作の基本を解説しました。ポイントは以下の通りです。

  • with文を使ってファイルを安全に扱う
  • モード(r, w, a)を正しく指定する
  • CSVはcsvモジュール、JSONはjsonモジュールを使う
  • エラーハンドリングを忘れずに
  • これらのテクニックをマスターすれば、データの入出力がスムーズになります。ぜひ実際にコードを書いて練習してみてください。