如何使用Python中的DictWriter创建有效的CSV文件?
我使用以下代码创建CSV文件:如何使用Python中的DictWriter创建有效的CSV文件?,python,csv,Python,Csv,我使用以下代码创建CSV文件: dwf = open(file_name, 'w') fw = csv.DictWriter(dwf, fieldnames=fields, delimiter='\t') fw.writeheader() data_dict = {'name':name, 'text': text, 'type':type 'URL': this_url} fw.writerow(data_dict) “text”字段包含文本数据,当我创建“text”变量时,我执行了以下操
dwf = open(file_name, 'w')
fw = csv.DictWriter(dwf, fieldnames=fields, delimiter='\t')
fw.writeheader()
data_dict = {'name':name, 'text': text, 'type':type 'URL': this_url}
fw.writerow(data_dict)
“text”字段包含文本数据,当我创建“text”变量时,我执行了以下操作:
text = text.strip().replace('\t', ' ').replace('\n', ' ').replace('\r', ' ')
我打算删除任何可能是列分隔符的潜在问题制造者。但是,创建的csv文件有时是无效的,因为当我在Mac上以数字打开它时,有些列在同一列中,与分隔符不对齐
如何避免这种情况?尝试使用
csv.DictWriter
的quoting
参数,确保所有字段都用引号括起来
csv.DictWriter(dwf,fieldnames=fields,delimiter=“\t”,quoting=csv.QUOTE\u ALL)
使用报价参数有什么不利之处吗?我很少在示例中看到这一点。它可以使文件大小稍微大一点,因为它必须适合所有引号,但这不是什么大问题。如果大小是一个很大的问题,您可以使用
csv.QUOTE\u NON\u NUMERIC
,但如果文件大小已经是一个问题,您应该将其压缩为gzip或zip存档。