我正在读取csv文件并将每行作为列表处理。最后,我想重新打印到.csv文件,但这些行不一定是偶数。我显然不能只去"print row"
,因为这会将其打印为列表。如何以.csv格式打印?
答案 0 :(得分:7)
阅读手册,有一个CSV编写器方法(也有例子)。不要打印数据,存储它们然后将它们写入CSV文件
答案 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()
这样的函数来检查它是否需要用双引号括起来和/或转义。