使用Python列表创建.csv文件
我想用Python列表里的值创建一个.csv文件。当我打印列表里的值时,它们都是unicode格式的,看起来像这样:
[u'value 1', u'value 2', ...]
如果我遍历列表里的值,比如用for v in mylist: print v
,它们就会显示成普通文本。
我还可以用,
把每个值之间隔开,像这样print ','.join(mylist)
。
而且我可以把这些输出到一个文件里,比如:
myfile = open(...)
print >>myfile, ','.join(mylist)
但我想把它输出成CSV格式,并且希望在列表里的值周围加上分隔符,比如:
"value 1", "value 2", ...
我找不到简单的方法来在格式中加入这些分隔符,我试过用join
语句。请问我该怎么做呢?
13 个回答
125
这是Alex Martelli的一个安全版本:
import csv
with open('filename', 'wb') as myfile:
wr = csv.writer(myfile, quoting=csv.QUOTE_ALL)
wr.writerow(mylist)
317
import csv
with open(..., 'wb') as myfile:
wr = csv.writer(myfile, quoting=csv.QUOTE_ALL)
wr.writerow(mylist)
with open(..., 'w', newline='') as myfile:
wr = csv.writer(myfile, quoting=csv.QUOTE_ALL)
wr.writerow(mylist)
补充说明:这个方法只适用于 Python 2.x 版本。
如果你想在 Python 3.x 版本中使用这个方法,需要把 wb
替换成 w
(可以参考这个 Stack Overflow 的回答)