Python でヘッダーのある csv ファイルをつくる
2022.11.24
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')])
各行がヘッダーに対応したタプルに変換されています。