我有一个列表列表,我需要写入csv文件.
mylist = [['Siddharth','Bangalore','blah@gmail.com'],
['Rahul','Bangalore','blah2@gmail.com'],.....and so on]
Run Code Online (Sandbox Code Playgroud)
这个列表通常是20,000到40,000长.
所以,现在,将它们写入csv文件的唯一方法是迭代列表并写入:
fileObj = open("/home/siddharth/sample.csv", "wb")
csv_file = csv.writer(fileObj)
for item in mylist:
csv_file.writerow(item)
Run Code Online (Sandbox Code Playgroud)
所以,我只是想知道,有没有办法将这样的列表列表写入csv,而不是迭代列表中的每个项目,例如.喜欢使用StringIO等.
或者,任何人都可以提供一些提示/提示,以便我可以创建自己的实现.
有一种writerows方法可以在iterable中添加所有行:
csv_file.writerows(the_list)
Run Code Online (Sandbox Code Playgroud)
无论你做什么,总会有一个循环(在你的代码或Python库实现中).没有办法绕过它,因为您需要查看列表中的每个项目,以便您可以将它们写入文件.
如果您担心单独将每行写入文件的性能:默认情况下Python使用缓冲的I/O,因此即使您在循环中逐个编写列表项,它们也不一定会像到文件.每当缓冲区填满时,它们将以块的形式写入,这将具有更好的性能.如果需要,可以使用buffering参数of 显式控制缓冲区大小open.