環境設定 数値 文字列 正規表現 リスト タプル 集合 辞書 ループ 関数 クラス データクラス 時間 パス ファイル スクレイピング その他

Python でヘッダーのある csv ファイルをつくる

Python の csv.writer を使って csv ファイルに書きこむとき、ヘッダーをつけるには下のようにします。

import csv

c = [['Alice', 170, 54], ['Bob', 186, 79]]

with open('test.csv', 'w') as f:
    writer = csv.writer(f, delimiter=',', quotechar='"', quoting=csv.QUOTE_ALL)
    writer.writerow(['Name', 'Height', 'Weight'])
    writer.writerows(c)

test.csv

"Name","Height","Weight"
"Alice","170","54"
"Bob","186","79"

ヘッダーがつきました。コンテンツを書きこむ前に writerow でリストを書きこむと、リストがヘッダーとして書きこまれます。

ちなみに、ヘッダーがついた csv ファイルの読むこみは DictReader が便利です。

import csv

with open('test.csv', 'r') as f:
    reader = csv.DictReader(f)
    for r in reader:
        print(r)

# OrderedDict([('Name', 'Alice'), ('Height', '170'), ('Weight', '54')])
# OrderedDict([('Name', 'Bob'), ('Height', '186'), ('Weight', '79')])

各行がヘッダーに対応したタプルに変換されています。

Python ファイル