BOM付きCSV書込み読込み Python

以前書いたけど、、

BOM付きCSV書込み

# -*- coding: UTF-8 -*-
import csv
import codecs

with codecs.open('sample.csv', 'w', 'UTF-8') as f:
    f.write(u'\ufeff')
    cf = csv.writer(f)
    cf.writerow(['A','B','C'])
    cf.writerow(['あ', 'い', 'う' ])
    cf.writerow(['a,a', 'b"b', 0 ])

CSVは、(,)カンマも、(”)ダブルクォートもエスケープされる。

A,B,C
あ,い,う
"a,a","b""b",0

CSV読込み、 行 row[1:] スライスを for ~ in で処理する。

# -*- coding: UTF-8 -*-
import csv
import codecs

with codecs.open('sample.csv', 'r', 'utf-8') as f:
    row = [row for row in csv.reader(f)]
    for row in row[1:]:
        print("A = %s  B = %s C = %s" % (row[0], row[1], row[2]) )