一些 CSV 单元格包含在“引号”中,而另一些则没有
Posted
技术标签:
【中文标题】一些 CSV 单元格包含在“引号”中,而另一些则没有【英文标题】:Some CSV cells are wrapped in "quotes" while others are not 【发布时间】:2021-03-30 22:31:13 【问题描述】:我是 Python 的新手。我无法调试代码。有人可以指导如何调试吗?
with open(inputFile, mode='rt') as f:
reader = csv.reader(f, delimiter=',', quotechar='"')
header = next(reader,None)
rows = sorted(reader, key=operator.itemgetter(1))
with open(outputFile, 'w') as final:
writer = csv.writer(final, delimiter=',')
writer.writerow(header)
for eachRow in rows:
writer.writerow(eachRow)
在某些情况下输出是
"","xxx"
在其他情况下,我明白了
,xxx,
我尝试异常块时遇到了一些缩进问题
【问题讨论】:
“我尝试异常块时遇到了一些缩进问题” 看起来像英文单词,但实际上没有意义。你能试着重新表达你在这里想说的话吗? 顺便说一句,Python 中局部变量的推荐命名约定是snake_case
而不是dromedaryCase
;即input_file
、output_file
、each_row
(或者在这些情况下,如果你的眼睛很痛,可能只是去掉下划线)。
【参考方案1】:
当您实例化 csv.writer
时,您可以告诉它您想要什么引用行为。传入quoting=csv.QUOTE_ALL
告诉它仔细引用所有内容。
writer = csv.writer(final, delimiter=',', quoting=csv.QUOTE_ALL)
但是,这通常不是必需的;任何合理的 CSV 实现都将允许并期望大多数字段不被引用。唯一真正需要引用的字段是包含文字双引号或逗号的字段(或更一般地说,列分隔符或引号字符的文字实例;有常见的 CSV 方言,如 TSV 等,它们使用不同的分隔符) .
【讨论】:
以上是关于一些 CSV 单元格包含在“引号”中,而另一些则没有的主要内容,如果未能解决你的问题,请参考以下文章
请教高手:csv文件用excel打开另存后,如何把单元格格式中的“”双引号去掉,直接转换为文本格式