使列表的每个元素成为CSV标题的一部分

时间:2015-04-17 13:15:11

标签: python csv python-3.4

我有一个清单:

[cat, dog, mouse]

我希望所有列表项都是csv文件中的标题,如下所示:

cat,dog,mouse
data,data,data
date,data,data

我有以下代码来打开文件,但我不确定如何将动物分配到标题:

with open(fname, 'w') as my_csv:
        my_csv.write(#cat,dog,mouse needs to go in here)
        csv_writer = csv.writer(my_csv, delimiter=',')

我不想明确地写cat,dog,mouse,因为这些动物会因用户输入而在代码中进一步选择动物而改变。

3 个答案:

答案 0 :(得分:1)

我认为最好的方法是使用csv.DictWriter。以下是您的问题的一个示例:

import csv

with open('names.csv', 'w') as csvfile:
    fieldnames = ['Cat', 'Dog', 'Mouse']
    writer = csv.DictWriter(csvfile, fieldnames=fieldnames)

    writer.writeheader()
    writer.writerow({'Cat': 'Data', 'Dog': 'Data', 'Mouse': 'Data'})

答案 1 :(得分:0)

只需按,加入元素,然后将其写入csv文件。

li = ['cat', 'dog', 'mouse']
with open(fname, 'w') as my_csv:
    my_csv.write(','.join(li))
    csv_writer = csv.writer(my_csv, delimiter=',')

答案 2 :(得分:0)

只需将列表写为第一行即可。另请注意,应使用Python 3中的newline=''或Python 2中的'wb'打开该文件,以便正确处理所有操作系统上的换行符:

li = ['cat', 'dog', 'mouse']
with open(fname, 'w', newline='') as my_csv:
    csv_writer = csv.writer(my_csv, delimiter=',')
    csv_writer.writerow(li)