将列表元素打印到.csv文件

时间:2010-07-12 13:01:36

标签: python string csv

我正在读取csv文件并将每行作为列表处理。最后,我想重新打印到.csv文件,但这些行不一定是偶数。我显然不能只去"print row",因为这会将其打印为列表。如何以.csv格式打印?

4 个答案:

答案 0 :(得分:7)

阅读手册,有一个CSV编写器方法(也有例子)。不要打印数据,存储它们然后将它们写入CSV文件

http://docs.python.org/library/csv.html#csv.writer

答案 1 :(得分:3)

假设“row”包含字符串列表,您可以尝试使用

print ",".join(row)

答案 2 :(得分:0)

虽然看起来您的问题更多是将写入写入csv文件而不是将其打印到标准输出,但这里有一个使用StringIO执行后者的示例:

import StringIO
import csv

a_list_from_csv_file = [['for', 'bar'], [1, 2]]
out_fd = StringIO.StringIO()
writer = csv.writer(out_fd, delimiter='|')
for row in a_list_from_csv_file:
    writer.writerow(row)
print out_fd.getvalue()

像这样你可以使用你正在阅读的csv使用的不同分隔符或转义字符。

答案 3 :(得分:-1)

“线条不一定均匀”是什么意思?您使用的是自制CSV解析器,还是使用csv module

如果前者并没有什么特别的东西你需要逃脱,你可以尝试类似

print ",".join([ '"' + x.replace('"', '""') + '"' for x in row])

如果你不想在每个字段周围“”,可能会创建一个像escape_field()这样的函数来检查它是否需要用双引号括起来和/或转义。