Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/317.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用Python中的DictWriter创建有效的CSV文件?_Python_Csv - Fatal编程技术网

如何使用Python中的DictWriter创建有效的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”变量时,我执行了以下操

我使用以下代码创建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”变量时,我执行了以下操作:

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存档。