HOWTO · Python

Python で CSV に 1 行ずつ書き込む方法

Python で CSV ファイルに 1 行ずつ書き込む方法を、従来のファイル処理と CSV writer モジュールという 2 つの効果的な方法で学びましょう。この包括的なガイドでは、明確なコード例、詳細な説明、CSV データを扱うためのベストプラクティスに関する洞察を提供します。初心者の方も、スキルを磨きたい方も、この記事は Python での CSV ファイル書き込みを習得する助けになるでしょう。

このページの内容

CSV ファイルへのデータの書き込みは、データの処理や操作における一般的な作業です。データベースからデータをエクスポートする場合でも、情報を記録する場合でも、単に作業を保存する場合でも、Python で CSV ファイルに書き込む方法を知っていることは非常に役立ちます。これを実現する主な方法は 2 つあります。従来のファイル処理方法と CSV writer の方法です。どちらの方法にも利点があり、それらを実装する方法を理解すれば、データ処理のスキルを高めることができます。

この記事では、両方の方法を詳しく探り、明確な例と説明を提供して、Python で CSV ファイルに 1 行ずつ書き込む方法を習得できるようにします。(csv.writer()、writerow())

方法 1:従来のファイル処理

従来のファイル処理方法では、Python の組み込みファイル操作を使って CSV ファイルにデータを書き込みます。この方法では、データの書き込み方法を細かく制御でき、必要に応じて出力形式をカスタマイズできます。その方法は次のとおりです。

data = [
    ['Name', 'Age', 'City'],
    ['Alice', 30, 'New York'],
    ['Bob', 25, 'Los Angeles'],
    ['Charlie', 35, 'Chicago']
]

with open('data.csv', 'w') as file:
    for line in data:
        file.write(','.join(map(str, line)) + '\n')

出力:

この方法では、まずデータをリストのリストとして定義します。各サブリストが CSV ファイルの 1 行を表します。with 文を使って書き込みモード('w')でファイルを開きます。これにより、書き込み後にファイルが適切に閉じられることが保証されます。ループの中では、サブリストの各項目を(必要に応じて)文字列に変換し、カンマで結合します。最後に、改行文字('\n')を追加して各行を区切ります。この方法は単純で、出力を希望どおりに整形できる柔軟性があります。

方法 2:CSV Writer モジュールを使用する

Python の CSV モジュールは、CSV ファイルを扱うためのより構造化された方法を提供します。特殊文字や引用符の処理など、CSV ファイルへの書き込みに関わる多くの細かな点を自動的に処理してくれます。CSV writer の使い方は次のとおりです。

import csv

data = [
    ['Name', 'Age', 'City'],
    ['Alice', 30, 'New York'],
    ['Bob', 25, 'Los Angeles'],
    ['Charlie', 35, 'Chicago']
]

with open('data.csv', 'w', newline='') as file:
    writer = csv.writer(file)
    writer.writerows(data)

出力:

この方法では、csv モジュールをインポートし、csv.writer 関数を使って writer オブジェクトを作成します。書き込みモード('w')でファイルを開き、Windows で余分な空白行が出ないよう newline='' を指定します。writerows メソッドを使えば、複数の行を一度に書き込むことができ、1 行ずつ書き込むよりも効率的です。この方法は、そのシンプルさと信頼性から好まれることが多く、特に大きなデータセットや複雑なデータ構造を扱う場合に適しています。

まとめ

Python で CSV ファイルに書き込むには、従来のファイル処理と CSV writer モジュールのどちらを使っても効果的に行えます。どちらの方法にも長所があり、どちらを選ぶかはプロジェクトの具体的な要件に依存することがよくあります。従来の方法は整形の制御がより細かくできますが、CSV モジュールは処理をシンプルにし、エラーの可能性を減らします。両方の手法を習得すれば、データ操作の能力を高め、作業の流れを効率化できます。

よくある質問

  1. CSV ファイルとは何ですか?
    CSV ファイルは、表形式に整形されたデータを含むプレーンテキストファイルで、各行が 1 つの行を表し、各値がカンマで区切られています。

  2. Python で CSV モジュールを使うべきなのはなぜですか?
    CSV モジュールは特殊文字や引用符を自動的に処理し、エラーのリスクを減らして、コードをよりクリーンで保守しやすくします。

  3. 既存の CSV ファイルを上書きせずに書き込むことはできますか?
    はい。書き込みモード('w')の代わりに追加モード('a')でファイルを開けば、既存の内容を削除せずに新しいデータを追加できます。

  4. Python で CSV ファイルを読み取るにはどうすればよいですか?
    CSV モジュールの csv.reader 関数を使って CSV ファイルを読み取ることができ、行を簡単に反復処理できます。

  5. 2 つの方法の間にパフォーマンスの違いはありますか?
    小さなデータセットでは、パフォーマンスの違いは無視できるほどです。ただし、より大きなデータセットでは、CSV モジュールを使用する方が一般に効率的で、エラーも起こりにくくなります。