使用Python修改CSV分隔符为竖线时如何保留数据中的逗号
CSV分隔符替换保留字段内逗号解决方案
问题原因
源CSV文件的逗号分隔符后存在前置空格,默认csv读取器无法正确识别带前导空格的引号包裹字段,会将字段内部的逗号误判为列分隔符,拆分出多余列,导致写入竖线分隔文件时列数错乱。
修复方案
在初始化csv.reader时添加skipinitialspace=True参数即可,该参数会自动忽略分隔符后的所有前置空白字符,让引号包裹的字段可以被正常识别。推荐同步使用with上下文管理器管理文件对象,自动处理文件关闭逻辑,避免资源泄漏。
完整可运行代码
import csv # 替换为你的输入文件路径 input_file_path = "your_input.csv" with open(input_file_path, encoding='utf-8') as infile, \ open('Detail_Test_Piped.csv', 'w', newline='', encoding='utf-8') as outfile: # 关键修改:添加skipinitialspace=True参数 reader = csv.reader(infile, delimiter=',', quotechar='"', skipinitialspace=True) writer = csv.writer(outfile, delimiter='|', quotechar='"', quoting=csv.QUOTE_MINIMAL) for row in reader: writer.writerow(row)
输出验证
运行后得到的结果和预期完全一致:
Record Type|Participant Full Name|Product Title N|Calvin Harris, The Weekend|Over Now
内容的提问来源于stack exchange,提问作者MPJ567
相关产品推荐
相关产品推荐

