python

【Python】CSV読込み方法をちゃちゃっと解説

PythonでCSVを読み込み返却する方法です。

pythonでCSVデータを読み込むためには標準のcsvモジュールを使用します。

csvモジュールについてはこちら

https://docs.python.org/ja/3/library/csv.html

今回使用するサンプルCSVはこちら

ID,名前,日付
10001,サトウ,20220101
10002,タカハシ,20220202
10003,ヤマダ,20220303

ディレクトリ構成は以下の通り

.
├── main.py
└── sample.csv

CSVを読み込むためにはcsvモジュールのcsv.reader()を使用します。

サンプルコードは以下の通り

import csv

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



# python main.py
# 出力結果
# ['ID', '名前', '日付']
# ['10001', 'サトウ', '20220101']
# ['10002', 'タカハシ', '20220202']
# ['10003', 'ヤマダ', '20220303']

 

csvモジュールを使用するためにimport csvを記載します。

with open() 構文を使うことでwith文を抜けると自動的にクローズ作業を行ってくれるので便利です。

with open()には以下の引数を指定します。

  • 第1引数: CSVファイル
  • 第2引数: モードを記載、今回は読み込みなので”r”
  • 第3引数: エンコーディングの種類を指定

csv.reader()には読み込むオブジェクトを引数に指定します。

読込結果のdataはイテラブルのためforで回すことで1行ずつ取り出すことができます。

また、csv.DictReader()を使うと最初の1行目をキーとした辞書型として保持されます。


with open("sample.csv", "r", encoding="utf-8") as f:
    data = csv.DictReader(f)
    for row in data:
        print(row)
        print(row["ID"])
        print(row["名前"])
        print(row["日付"])

# python main.py
# 出力結果
# {'ID': '10001', '名前': 'サトウ', '日付': '20220101'}
# 10001
# サトウ
# 20220101

# {'ID': '10002', '名前': 'タカハシ', '日付': '20220202'}
# 10002
# タカハシ
# 20220202

# {'ID': '10003', '名前': 'ヤマダ', '日付': '20220303'}
# 10003
# ヤマダ
# 20220303

 

csv.reader()をcsv.DictReader()に変えることで、1行目の各列名がキーとなります。

今回は、csvモジュールを用いてCSVファイルの読み込みについて記録しました。

まとめです。

CSVファイルの読み方

・import csvでモジュールを使用できるようにする

・with open()でファイルを開く

・csv.reader()またはcsv.DictReader()で読み込む