星期三, 3月 20, 2013

Python CSV writeheader

本來是用 writerow() ,就可以順利使用。但是想要讓輸出結果多個標頭,資質駑鈍,看了 Python CSV module 文件,還是看不懂。 Google 到這篇 use csv to write out data in python,例子淺顯易懂。第一個是要用 csv.DictWriter(),帶 fieldnames 參數。第二個是 writerow/writerows 時,則是要帶 dict 下去才行。
import csv
result=[(1,2,3,4), (5,6,7,8)]
fieldnames = ['rev', 'committer', 'affected_files',
              'affected_lines']
with open(options.filename, 'wb') as csvfile:
    writer = csv.DictWriter(csvfile, delimiter=',',
                            fieldnames=fieldnames,
                            quoting=csv.QUOTE_MINIMAL)
    writer.writeheader()
    rows = [{'rev': a,
             'committer': b,
             'affected_files': c,
             'affected_lines': d} for a, b, c, d in result]
    writer.writerows(rows)

沒有留言: