PythonでCSVファイルの読み書き

PythonでCSV(comma-separated values)を取り扱う場合、

aaa,120,240
bbb,320,240

のようなデータであればsplitを使って簡単に

>>> for row in open('data.csv').readlines():
...   row = row.strip().split(',')
...   print row
...
['aaa', '120', '240']
['bbb', '320', '240']

とできますが、'aa,aa'のようなデータが含まれていたりすると面倒なことになってしまいます。

そういう場合は出来合いのライブラリを使うのが便利です。

aaa,120,240
b bb,320,240
"cc,c",240,120

という少し複雑なデータに対しても

>>> import csv
>>> for row in csv.reader(open('data.csv', 'rb')):
...   print row
...
['aaa', '120', '240']
['b bb', '320', '240']
['cc,c', '240', '120']

と、扱うことができます。

ちなみに、区切り文字カンマはdelimiter、ダブルクォートはquotecharで変更できます。

>>> csv.reader(open('data.csv', 'rb'), delimiter=' ', quotechar="'")

コメントを残す

メールアドレスが公開されることはありません。