将列表写入csv文件而不在python中循环

Sid*_*ava 4 python python-2.7

我有一个列表列表,我需要写入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等.
或者,任何人都可以提供一些提示/提示,以便我可以创建自己的实现.

int*_*jay 7

有一种writerows方法可以在iterable中添加所有行:

csv_file.writerows(the_list)
Run Code Online (Sandbox Code Playgroud)

无论你做什么,总会有一个循环(在你的代码或Python库实现中).没有办法绕过它,因为您需要查看列表中的每个项目,以便您可以将它们写入文件.

如果您担心单独将每行写入文件的性能:默认情况下Python使用缓冲的I/O,因此即使您在循环中逐个编写列表项,它们也不一定会像到文件.每当缓冲区填满时,它们将以块的形式写入,这将具有更好的性能.如果需要,可以使用buffering参数of 显式控制缓冲区大小open.