今回やること
CSVは、表データをテキストで保存する形式です。
CSVを扱えると、名簿、点数表、売上表のようなデータをPythonで処理できます。
今回は、標準ライブラリの csv を使って読み書きします。
CSVを書き込む
import csv
with open("scores.csv", "w", encoding="utf-8", newline="") as file:
writer = csv.writer(file)
writer.writerow(["name", "score"])
writer.writerow(["Ada", 90])
writer.writerow(["Taro", 75])
writerow() は、1行分のデータを書き込みます。
CSVを読み込む
import csv
with open("scores.csv", "r", encoding="utf-8") as file:
reader = csv.reader(file)
for row in reader:
print(row)
読み込んだ1行はリストとして扱えます。
DictReaderを使う
import csv
with open("scores.csv", "r", encoding="utf-8") as file:
reader = csv.DictReader(file)
for row in reader:
print(row["name"], row["score"])
見出し行があるCSVでは、DictReader が読みやすいです。
よくあるエラー
| エラー | 原因 | 修正 |
|---|---|---|
| 空行が入る | newline="" がない | 書き込み時に指定する |
KeyError | 見出し名が違う | CSVの1行目を確認 |
| 文字化け | 文字コードが違う | utf-8 や utf-8-sig を試す |
練習
- 名前と点数のCSVを作る
- CSVを読み込んで表示する
DictReaderで名前だけ表示する- 点数が80以上の人だけ表示する
次のステップ
標準ライブラリを使う考え方は Pythonのimport で整理します。