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()で読み込む