CSVファイル読み込みプログラム

CSVファイルを作成したら、それを読み込まないわけにはいきません。

さっそく、CSVファイル読み込みスクリプトを書いてみます。

(ファイル名) csvread.py

import csv

# 改行が\r\nの処理系でnewline=''を指定しないと、余計な\nが付加されてしまう。
# したがって、すべての処理系で動作するためにnewlineパラメータ引数を指定する。
with open('book.csv', 'rt', newline='') as fin:
    cin = csv.reader(fin)
    for row in cin:
        print('{} ({} 著) ¥{}'.format(row[0], row[1], row[2]))

CSVファイル書き込みプログラムで作成したCSVファイル(book.csv)を用意し、今回作ったプログラムを実行する。

$ python csvread.py
title (author 著) ¥price
Python入門 (パイソン太郎 著) ¥5080
Rubyハッキング (赤石次郎 著) ¥1200
JavaScriptのコツ (後藤三郎 著) ¥5300

あら?
列名(1行目)のデータも表示されてしまいました。
これではいけません。

(改良版) csvread.py

import csv

with open('book.csv', 'rt', newline='') as fin:
    cin = csv.DictReader(fin)
    for row in cin:
        print('{} ({} 著) ¥{}'.format(row['title'], row['author'], row['price']))

DictReader関数には、fieldnamesパラメータ引数に列名を指定できる。
(例)
cin = csv.DictReader(fin, fieldnames=[‘first’, ‘second’, ‘third’])

fieldsnamesを指定しない時は、CSVファイルの1行目を列名(辞書キー)として使うことを意味する。

改良版を実行すると、

$ python csvread.py
Python入門 (パイソン太郎 著) ¥5080
Rubyハッキング (赤石次郎 著) ¥1200
JavaScriptのコツ (後藤三郎 著) ¥5300

よし、成功。

参考サイト

CSVファイルの読み書き

参考文献

入門Python 3 (オライリー)

Pythonプログラミング物語 © 2016 Frontier Theme