Pythonでcsv.DictWriterを使ってヘッダー付きCSVファイルを作成する方法

この記事では、Pythonの`csv.DictWriter`クラスを使用してヘッダー付きのCSVファイルを作成する方法について解説します。具体的なコード例とその解説、さらに応用例を2つ含めています。

目次

csv.DictWriterとは

`csv.DictWriter`はPythonの標準ライブラリである`csv`モジュール内に存在するクラスです。このクラスを使用することで、各行がディクショナリとして表されるCSVファイルを簡単に作成することができます。特に、ヘッダー情報を維持しながらデータを操作したい場合に非常に便利です。

基本的な使い方

`csv.DictWriter`を使う際に必要なステップは主に以下の3つです。

1. CSVファイルを開く(または新規作成する)
2. `csv.DictWriter`オブジェクトを作成する
3. ディクショナリ形式でデータを書き込む

基本的なコード例


# csv モジュールをインポート
import csv

# ファイルを開く(新規作成も含む)
with open('sample.csv', 'w', newline='') as file:
    # ヘッダー情報
    fieldnames = ['Name', 'Age', 'Occupation']
    
    # csv.DictWriterオブジェクトを作成
    writer = csv.DictWriter(file, fieldnames=fieldnames)
    
    # ヘッダーを書き込む
    writer.writeheader()
    
    # データを書き込む
    writer.writerow({'Name': 'John', 'Age': 28, 'Occupation': 'Engineer'})
    writer.writerow({'Name': 'Jane', 'Age': 32, 'Occupation': 'Doctor'})

この例では、ヘッダーが`Name`、`Age`、`Occupation`であり、それぞれのデータがディクショナリ形式で書き込まれています。

応用例1: 条件に応じたデータの書き込み

ある条件に合致するデータのみをCSVファイルに書き込む場合も簡単に実装できます。

コード例


# csv モジュールをインポート
import csv

# ファイルを開く(新規作成も含む)
with open('filtered_sample.csv', 'w', newline='') as file:
    fieldnames = ['Name', 'Age', 'Occupation']
    writer = csv.DictWriter(file, fieldnames=fieldnames)
    
    writer.writeheader()
    
    # データリスト
    people = [
        {'Name': 'John', 'Age': 28, 'Occupation': 'Engineer'},
        {'Name': 'Jane', 'Age': 32, 'Occupation': 'Doctor'},
        {'Name': 'Bob', 'Age': 22, 'Occupation': 'Student'}
    ]
    
    # Ageが25以上のデータだけを書き込む
    for person in people:
        if person['Age'] >= 25:
            writer.writerow(person)

応用例2: 既存のCSVファイルにデータを追加

`csv.DictWriter`を使用して、既存のCSVファイルに新たな行を追加することも可能です。

コード例


# csv モジュールをインポート
import csv

# ファイルを開く(追記モード)
with open('sample.csv', 'a', newline='') as file:
    fieldnames = ['Name', 'Age', 'Occupation']
    writer = csv.DictWriter(file, fieldnames=fieldnames)
    
    # 新たなデータを書き込む
    writer.writerow({'Name': 'Emily', 'Age': 24, 'Occupation': 'Artist'})

この例では、既存の`sample.csv`ファイルに新たな行が追加されます。

まとめ

`csv.DictWriter`は、ヘッダー付きのCSVファイルを簡単に作成するための強力なツールです。基本的な使い方から、条件に基づいたデータのフィルタリング、既存のCSVファイルへのデータ追加など、多くの応用例でその有用性が発揮されます。

コメント

コメントする

目次