Python

【Python】第6章第4回:CSVファイルの読み書き

本記事では、PythonでのCSVファイル操作について解説します。データ処理で頻繁に使用されるCSV形式のファイルを、簡単に読み書きする方法を学びます。

0. 記事の概要

この記事を読むメリット

  • CSVファイルの基礎を理解:構造や用途を把握できます。
  • 実践的な操作を習得:Pythonを使ったCSVファイルの読み書きを学べます。
  • エラー処理のスキル向上:CSV操作時の注意点やエラー対策を理解できます。

この記事で学べること

  • CSVファイルの基礎知識
  • PythonでのCSVファイル読み書き方法
  • エラー処理と応用例

1. CSVファイルとは?

1.1 定義と特徴

CSV(Comma-Separated Values)は、カンマ区切りのテキストデータを扱うファイル形式です。データをシンプルに保存し、多くのアプリケーションと互換性があります。

1.2 主な用途

  • データのインポートとエクスポート
  • シンプルなデータ共有
  • スプレッドシートソフトウェアとの連携

2. CSVファイルを読み込む方法

2.1 Pythonでの読み込み

Pythonでは、標準ライブラリのcsvモジュールを使用してCSVファイルを読み込むことができます。

2.2 基本的なコード例

# CSVファイルを読み込む
import csv

with open("example.csv", "r") as file:
    reader = csv.reader(file)
    for row in reader:
        print(row)  # 各行をリストとして出力
動作解説
  1. csv.readerを使用してファイルの各行をリストとして読み込みます。
  2. forループで行ごとにデータを処理します。
  3. with文を使用してリソースを自動解放します。

3. CSVファイルを書き込む方法

3.1 Pythonでの書き込み

csv.writerを使用して、データをCSV形式でファイルに書き込むことができます。

3.2 基本的なコード例

# CSVファイルに書き込む
import csv

with open("output.csv", "w", newline="") as file:
    writer = csv.writer(file)
    writer.writerow(["名前", "年齢", "職業"])  # ヘッダー行を書き込む
    writer.writerow(["田中", 30, "エンジニア"])
    writer.writerow(["山田", 25, "デザイナー"])
動作解説
  1. csv.writerを使用してデータを行単位で書き込みます。
  2. writer.writerowを使って1行ずつデータを追加します。
  3. newline=""を指定することで不要な空行を防ぎます。

4. 練習問題

以下の課題に挑戦してみましょう。

  1. 任意のデータを含むCSVファイルを作成し、書き込んでください。
  2. 作成したCSVファイルを読み込み、内容を表示してください。
  3. エラー処理を組み込んだCSVファイル操作を実装してください。

5. 練習問題の解答と解説

問1〜3の解答例

# 問1: CSVファイルの作成と書き込み
import csv

with open("data.csv", "w", newline="") as file:
    writer = csv.writer(file)
    writer.writerow(["商品", "価格", "在庫"])
    writer.writerow(["リンゴ", 100, 50])
    writer.writerow(["バナナ", 150, 30])

# 問2: CSVファイルの読み込み
with open("data.csv", "r") as file:
    reader = csv.reader(file)
    for row in reader:
        print(row)

# 問3: エラー処理付きCSV操作
try:
    with open("nonexistent.csv", "r") as file:
        reader = csv.reader(file)
        for row in reader:
            print(row)
except FileNotFoundError:
    print("ファイルが見つかりません。")

6. まとめ

本記事では、PythonでのCSVファイル操作を学びました。この知識を活用して、データのインポートやエクスポートを効率化してください。