Python CSV: スプレッドシートの読み取りと書き込み
Python で CSV データを処理する方法を学びます。効率的なテーブル解析のために csv.reader、csv.writer、および DictReader/DictWriter をマスターします。
概要
CSV (カンマ区切り値) は、スプレッドシートやリレーショナル データベースからデータをエクスポートおよびインポートするための普遍的な形式です。 CSV ファイルは単純なテキスト ファイルであるため、分析ツール、データベース プラットフォーム、プログラミング言語で広くサポートされています。 Python には、パンダのようなサードパーティ ライブラリを必要とせずに、表形式データの解析、書き込み、操作用に特に最適化された組み込みの「csv」モジュールが備えられています。
csv モジュールは、リストベースのリーダー/ライターと辞書ベースのリーダー/ライターという 2 つの主要なインターフェイスを提供します。 `csv.reader()` と `csv.writer()` は CSV の各行を文字列のリストとして表します。これは単純ですが、数値インデックスによって列を参照する必要があります。より堅牢なアプローチとして、開発者は `csv.DictReader()` および `csv.DictWriter()` を使用します。これらのクラスは、CSV ヘッダー行をキーとして使用して各行を辞書にマップし、列が並べ替えられても壊れない、可読性の高いコードを生成します。
CSV ファイルを扱うときは、構文の詳細が重要です。プログラムが異なれば、異なる区切り文字 (タブやセミコロンなど) が使用され、引用符や行末が異なる方法で処理されます。 「csv」モジュールを使用すると、「方言」パラメータを介してカスタム区切り文字、引用符ルール、およびエスケープ文字を定義できます。さらに、Python で CSV ファイルを開く場合、異なるオペレーティング システム間での空白行の問題を防ぐために、`newline=''` を `open()` 関数に渡すことが重要な要件です。
コードと実行の出力
DictWriter を使用して CSV ファイルにデータを書き込み、DictReader でそれを読み取ります。
import csv
filename = "employees.csv"
fieldnames = ["id", "name", "department"]
data = [
{"id": "101", "name": "Bob", "department": "HR"},
{"id": "102", "name": "Alice", "department": "Engineering"}
]
# Write dict data to CSV
with open(filename, "w", newline="") as csvfile:
writer = csv.DictWriter(csvfile, fieldnames=fieldnames)
writer.writeheader()
writer.writerows(data)
print("CSV written successfully.\n--- Reading CSV ---")
# Read CSV data back as dictionaries
with open(filename, "r", newline="") as csvfile:
reader = csv.DictReader(csvfile)
for row in reader:
print(f"Employee {row['name']} works in {row['department']}.")CSV written successfully.
--- Reading CSV ---
Employee Bob works in HR.
Employee Alice works in Engineering.段階的な実装
- 財務分析用のスプレッドシート レコードのエクスポート
- 連絡先リストのカタログをデータベースにインポートする
- 計算スクリプトからの統計出力のフォーマット
よくある質問
CSV ファイルを開くときに newline="" を指定する必要があるのはなぜですか?
これは、特に Windows プラットフォームで余分な空白行が挿入されるのを防ぐために、csv モジュールの内部ライターで必要です。
カンマの代わりにタブを使用する CSV ファイルを解析するにはどうすればよいですか?
delimiter パラメータをリーダーまたはライターに渡すことができます (例: csv.reader(file, delimiter='\t'))。
関連トピック
推奨される Python リソース
関連するインタラクティブなチュートリアル、チートシート、コード比較で知識を深めてください。
Python で CSV ファイルを読み取って解析する方法
組み込みの csv モジュールを使用して、Python で CSV ファイルを読み取り、解析する方法を学びます。リスト、辞書リーダー、カスタム区切り文字としての読み方をマスターします。
Python 文字列メソッドのチートシート
Python 文字列操作の完全なリファレンス ガイド。文字列プロパティの書式設定、検索、分割、置換、チェックをマスターします。
Python と JavaScript: どちらのプログラミング言語が最適ですか?
Python と JavaScript の包括的な比較。構文の違い、パフォーマンス、使用例 (バックエンドとフロントエンド)、およびコーディング例を調べます。