如何在Python中将列表的列表写入CSV文件

12

我有一个列表的列表,并且我想将其写入CSV文件。 例如:

data=[['serial', 'name', 'subject'],['1', 'atul','tpa'],['2', 'carl','CN'].......]

data[0] 应该是列名,其它的数据则是逐行的数据。

请给我建议如何做到这一点。


1
你自己有尝试过吗?遇到了什么问题? - Martijn Pieters
实际上,我在Excel文件中有多个工作表,并解析了所有工作表并创建了一个列表。因此,当我使用您的解决方案将其写入CSV文件时,它会为每个工作表粘贴列名。 - Akshay
csv 只是将你提供的内容写出来。如果你看到重复的列名,跳过每个表格的第一个条目。 - Martijn Pieters
2个回答

20

使用csv模块很容易解决这个问题:

with open('output.csv', 'w', newline='') as csvfile:
    writer = csv.writer(csvfile)
    writer.writerows(data)

你已经在data中拥有标题作为第一行; 你可以使用 writer.writerows()方法一次性写入所有行。实际上就是这样简单。


正如seedubbs在他们的回答中提到的那样,“TypeError: 'newline'是此函数的无效关键字参数”。 - samkhan13
1
@samkhan13:你和他们都在使用Python 2,而不是Python 3(请注意问题标签)。改用open('output.csv', 'wb')(即使用二进制模式,以便CSV模块可以控制写入的换行符)。 - Martijn Pieters

2
当我使用newline='' 时,出现以下错误:TypeError: 'newline'是该函数的无效关键词参数。下面是我所使用的内容,对我来说很有效。
csv_file = open("your_csv_file.csv", "wb")
writer = csv.writer(csv_file)
writer.writerows(clean_list)

1
这是因为您正在使用Python 2,而不是标记在问题上的Python 3。 - Martijn Pieters

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接