Python写入CSV文件时如何去除自动添加的引号?
CSV写入时多余引号的解决方法
问题背景
需要向CSV文件写入大量数据,数据格式为已包含逗号和换行符的字符串列表:
data = ['438.0337145,438.0178423,0.0158\n', '438.0497017,438.0337145,0.01598\n']
使用csv.writer的writerow方法写入时,无论设置quoting=csv.QUOTE_ALL还是quoting=csv.QUOTE_NONE,都会生成带多余引号的错误格式,期望得到无额外引号的标准CSV内容:
438.0337145,438.0178423,0.0158 438.0497017,438.0337145,0.01598
原因分析
你的每个列表元素本身就是完整的CSV行(包含分隔符和换行),但csv.writer的writerow方法会把每个元素视为单个字段处理,因此会自动添加引号或转义符来包裹包含分隔符的字段,导致格式错误。
解决方案
方案1:直接写入格式化好的内容(推荐)
既然数据已经是符合CSV格式的行,无需通过csv模块处理,直接用文件对象的writelines方法写入:
with open(uuidCSV, 'w') as csvFile: csvFile.writelines(data)
该方法直接将列表中的每个字符串写入文件,不会做任何额外格式处理,完全匹配预期结果。
方案2:通过csv模块拆分字段写入
如果后续需要对字段进行修改或校验,可先将每行字符串拆分为字段列表,再用csv.writer逐行写入:
import csv with open(uuidCSV, 'w', newline='') as csvFile: wr = csv.writer(csvFile, delimiter=',') for line in data: # 移除换行符,按逗号拆分字段 fields = line.strip().split(',') wr.writerow(fields)
csv模块会自动处理字段的分隔和换行,确保输出标准的CSV格式。
内容的提问来源于stack exchange,提问作者newdeveloper
相关产品推荐
相关产品推荐

