Pythonでcsvを読む処理のメモ

こんなdata.csvがあるとして

姓名,生年月日,性別
真城最高,1994/2/18,男
高木秋人,1994/1/25,男
亜豆美保,1993/11/5,女
見吉香耶,1993/6/25,女
新妻エイジ,1992/11/3,男
福田真太,1990/7/27,男
中井巧朗,1976/2/2,男
蒼樹紅,1990/3/11,女
平丸一也,1984/6/18,男


pythoncsvファイルを読み込んで、云々する処理のメモ
ヘッダー行を飛ばしたり、ヘッダ名と値の辞書を作成するあたりがTIPSといえばTIPS。

# coding=utf-8
import csv

template = 'Person(name=u"%(姓名)s", birthday="%(生年月日)s", sex=u"%(性別)s").save()'

data = csv.reader(open('data.csv'))

# ヘッダー行を飛ばす
header = data.next()

for row in data:

    # ヘッダー名と値の辞書を作成
    # 例  {'生年月日': '1994/2/18', '姓名': '真城最高', '性別': '男'}
    d = dict(zip(header, row))

    # 出力
    # 例 Person(name=u"真城最高", birthday="1994/2/18", sex=u"男").save()
    print template % d


出力結果

Person(name=u"真城最高", birthday="1994/2/18", sex=u"男").save()
Person(name=u"高木秋人", birthday="1994/1/25", sex=u"男").save()
Person(name=u"亜豆美保", birthday="1993/11/5", sex=u"女").save()
Person(name=u"見吉香耶", birthday="1993/6/25", sex=u"女").save()
Person(name=u"新妻エイジ", birthday="1992/11/3", sex=u"男").save()
Person(name=u"福田真太", birthday="1990/7/27", sex=u"男").save()
Person(name=u"中井巧朗", birthday="1976/2/2", sex=u"男").save()
Person(name=u"蒼樹紅", birthday="1990/3/11", sex=u"女").save()
Person(name=u"平丸一也", birthday="1984/6/18", sex=u"男").save()