【发布时间】:2020-05-12 15:07:27
【问题描述】:
我有这个列表:
listOflist = [[123, "A", "B", "C"], [456, "D", "E", "F"], [123, "G", "H", "I"]]
我需要将每个列表写入一个 csv 文件。诀窍(至少对我而言)是我需要一次完成一个列表,因此我可以首先检查我正在写入 csv 文件的列表中的一个元素是否已经在另一个列表中。
我首先想到的是这个,但是它给了我一个错误信息(_csv.Error: iterable expected, not int)
for element in list:
with open("test.csv", "w") as c:
writer = csv.writer(c)
writer.writerows(element)
我也试过这个,但它不能正常工作,因为它只将最后一个元素 [123, "G", "H", "I"] 写入文件。
for element in new_list:
print(element)
with open("test.csv", "w") as c:
writer = csv.writer(c)
writer.writerows(map(lambda x: [x], element))
【问题讨论】:
-
实际上,你将第一个列表写入文件。之后,您将使用第二个列表覆盖该文件。然后你再次覆盖它,这次是第三个列表......这就是你失去前两个列表的原因。
-
是的,我没有意识到我处于写作模式。我切换到附加。愚蠢的我。谢谢。
-
您想将它们写入不同的 CSV 文件吗? (通过附加,您正在写入您打开的唯一 csv 文件)
-
是的,也是唯一的。附加效果很好。唯一的问题是它将每个元素写在一行上(而不是我希望每个列表都写在一行上)。仍在努力。