【发布时间】:2018-06-07 15:45:28
【问题描述】:
我正在尝试根据之前创建和连接的列表内容创建 CSV 文件。交易是我所有的行记录在每行的开头和结尾都带有双引号。此外,在文件末尾,我得到了一条额外的白线。
代码:
with open('/tmp/'+filename,"w", newline='') as output:
writer = csv.writer(output)
for item in update_records:
row = '{},{},{}'.format(item['field1'],item['field2'],item['field3'])
#print(row)
writer.writerow([row])
output.close()
当前输出:
我试过了:
writer = csv.writer(output, quotechar='', quoting=csv.QUOTE_MINIMAL)
但我收到如下错误:
如果启用引用,则必须设置quotechar
非常感谢您的支持。
【问题讨论】:
-
quotechar传递了您要用作引号的字符。传入一个空字符串会让人感到困惑。看看这个SO question -
如果你想使用 ' 作为
quotechar比你必须通过quotechar="'" -
请考虑@Gelineau 的答案,因为您可能一开始可能不想将其存储在引号中,编写字符串列表就是您想要分隔它们的内容,否则这将不是真正的CSV。
-
output.close()在使用 with 语句时是不必要的。您想要的输出应该是什么样的?为什么最后的空白行会打扰您,我以前也去过那里,格式正确的 CSV 会有一个行终止符,并且它也必须为最后一个条目终止,使它看起来像它。你可以改变这条规则,但是你必须以书面形式和阅读它的人来处理例外情况。
标签: python python-3.x csv