2011-01-07 58 views

回答

6
",".join(lst) 

会做到这一点,但这不是真正的csv(需要转义等)。

10

如果要生成规范化的CSV文件,请使用csv模块。从文档


例子:

>>> import csv 
>>> spamWriter = csv.writer(open('eggs.csv', 'wb'), delimiter=' ', 
...       quotechar='|', quoting=csv.QUOTE_MINIMAL) 
>>> spamWriter.writerow(['Spam'] * 5 + ['Baked Beans']) 
>>> spamWriter.writerow(['Spam', 'Lovely Spam', 'Wonderful Spam']) 
+0

你会介意给那个 – 2011-01-07 03:24:34

0
import csv 

def writeCsvFile(fname, data, *args, **kwargs): 
    """ 
    @param fname: string, name of file to write 
    @param data: list of list of items 

    Write data to file 
    """ 
    mycsv = csv.writer(open(fname, 'wb'), *args, **kwargs) 
    for row in data: 
     mycsv.writerow(row) 

mydat = (
    ['Name','Age','Grade'], 
    ['Teri', 14, 7], 
    ['John', 8, 2] 
) 

writeCsvFile(r'c:\test.csv', mydat) 
0

卡尔,每当你将数据写入文件什么的Python实际上做的是缓存数据,然后做与文件的I/O操作(将数据写入文件)。这个操作被称为'冲洗'(缓冲区)。您必须确保您已关闭打开的文件,否则缓冲区将不会被刷新,因此您不会在文件中写入任何内容。

0

我认为你需要拆分开代码的文件部分,以便以后可以单独关闭它。在这种情况下,您正试图“关闭”编写器对象。虽然更好的方法是使用“with”,但这个示例与您拥有的方式更类似:

csvfile = open('test.csv', 'wb') 
csvwriter = csv.writer(csvfile) 
for item in pct: 
    csvwriter.writerow(item) 
csvfile.close()