最終更新日:2025年11月22日

pythonでcsvファイルを読み書きする方法

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

初心者が最初につまずきやすいポイントのひとつが「ファイル操作」。その中でも、CSV は扱う機会が多い形式だ。ここでは、Python 標準ライブラリだけを使って、CSV を読み込んだり書き込んだりする基本的なコードをわかりやすく紹介する。

CSV とは何か

CSV は「Comma Separated Values」の略で、カンマで区切られたテキストデータのこと。Excel やスプレッドシートとも相性が良く、プログラムでも扱いやすい。

CSV を読み込む

Python には標準で csv モジュールが用意されている。まずは CSV の内容を行ごとに読み込む基本例から。

import csv

with open("input.csv", encoding="utf-8", newline="") as f:
    reader = csv.reader(f)
    for row in reader:
        print(row)

ポイント

CSV に書き込む(上書き)

次に、CSV ファイルにデータを書き込む。

import csv

data = [
    ["name", "age", "city"],
    ["Taro", "20", "Tokyo"],
    ["Hanako", "25", "Osaka"]
]

with open("output.csv", "w", encoding="utf-8", newline="") as f:
    writer = csv.writer(f)
    writer.writerows(data)

ポイント

CSV に追記する

既存のファイルに行を追加したい場合は "a" モードを使う。

import csv

with open("output.csv", "a", encoding="utf-8", newline="") as f:
    writer = csv.writer(f)
    writer.writerow(["Jiro", "30", "Nagoya"])

辞書形式で読み書きする方法

列名を意識して扱いたい場合には、DictReaderDictWriter が便利。
簡単な例を紹介する。

読み込み

import csv

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

書き込み

import csv

fieldnames = ["name", "age", "city"]
rows = [
    {"name": "Taro", "age": "20", "city": "Tokyo"},
    {"name": "Hanako", "age": "25", "city": "Osaka"}
]

with open("dict_output.csv", "w", encoding="utf-8", newline="") as f:
    writer = csv.DictWriter(f, fieldnames=fieldnames)
    writer.writeheader()
    writer.writerows(rows)

まとめ

この基本を押さえておけば、データ処理の第一歩として十分。

pythonでcsvファイルを読み書きする方法の商品をアマゾンで調べる。
Pythonでlibssl.so.1.1がインポートエラー
sect: Pythons | lastmod: 2023-08-23 | pv: 37
pyenvでpythonをインストールしようとしたらエラーが出たけど解決した
sect: Pythons | lastmod: 2022-12-22 | pv: 2068
python venvを使ってプロジェクトごとに独立した環境を構築する
sect: Pythons | lastmod: 2020-11-09 | pv: 8
pythonでOS種別などのプラットフォーム情報を取得する方法
sect: Pythons | lastmod: 2020-11-01 | pv: 7
PYTHONPATHの内容確認と追加する方法
sect: Pythons | lastmod: 2020-10-28 | pv: 1102