よくつかうcsvの処理

pythoncsvを読み込むとき、txtとして読んでもいいのですけど、標準でcsvというモジュールがついている。それを使うとカンマの認識とかしなくていいので、楽になる。

ただ読む場合はこんな感じ。

import csv
f = open("testdata.csv","rt")

csvReader = csv.reader(f)

for row in csvReader:
    #1行ごとにしたいこと
    print row #(例)

csvが各列で長さが違うときとか、あるいは一つの列だけを読み込みたいとか、そういう時はどうするのだろう。
一般論はわからないのだが、私はこんな感じにしてみた。

import csv
f =open("testdata.csv","rt")
csvReader = csv.DictReader(f)

for row in csvReader:
   #ここに各列でしたいことを書く
  print row{'author']

上の例だと、csvの1行目の欄にauthorという列のところだけをprintすることになる。

DictReaderで読み込むとkeyで取得できる辞書形式になるそうだ。
やたら列があるデータなどを読み込むときに便利なのかも。