home changes contents help options

077:カンマ区切りCSVを処理する

カンマ区切りのテキストinputcsv.txtがあるとする。 これをリストに入れるには、splitメソッドで区切りにカンマ指定して分割すればよい。 ただし、各行のお尻には改行が入っているので、それを予め除いておく必要もある。
また、python2.3からは csvモジュール というのが使えるようになっており、そちらだともっと簡単になる。

 f=open('C:/Documents and Settings/Administrator/My Documents/inputcsv.txt','r')
 for  line in f:
     array=line.rstrip().split(',')
     print array
 f.close()
 実行結果は
 ['1', 'apple', '100']
 ['2', 'orange', '45']
 ['3', ' banana ', '22']

 >>> import csv
 >>> reader=csv.reader(file('C:/Documents and Settings/Administrator/My Documents/inputcsv.txt'))
 >>> for row in reader:
        print row

 ['1', 'apple', '100']
 ['2', 'orange ', '45']
 ['3', ' banana ', '22']

書き込みの例

 import csv
 lst=[['1','a'],['2','b']]
 writer = csv.writer(open('C:/Documents and Settings/Administrator/My Documents/outputcsv.txt','w'),delimiter=',')
 for row in lst:
     writer.writerow(row)

とりあえず、原始的な方法ではファイルをアペンドモードで開いて、文字列を追加していく。ファイルが無い場合は新たに作られる。

 >>> import string
 >>> list=[['1','a'],['2','b']]
 >>> o=open('C:/Documents and Settings/Administrator/My Documents/inputcsv.txt','a+')
 >>> for line in list:
        txt = '.'.join(line)+'\n'
        o.write(txt)
>>> o.close()