Python修复CSV引号内换行问题,解决Excel打开报错
解决CSV文件引号内换行导致的Excel打开异常问题
方法一:使用Python标准库csv(无需额外安装)
Python自带的csv模块原生支持解析带双引号字段内的换行,能自动将被拆分的行合并为正确的单行记录。直接运行以下脚本即可修复:
import csv # 替换为你的原CSV文件路径 input_path = "uk_tariff_products.csv" # 修复后文件的保存路径 output_path = "fixed_uk_tariff_products.csv" with open(input_path, 'r', newline='', encoding='utf-8') as infile, \ open(output_path, 'w', newline='', encoding='utf-8') as outfile: # 若你的CSV使用其他分隔符(如制表符),请修改delimiter参数,比如delimiter='\t' csv_reader = csv.reader(infile) # 写入时用双引号包裹所有字段,确保Excel正确识别 csv_writer = csv.writer(outfile, quoting=csv.QUOTE_ALL) for row in csv_reader: csv_writer.writerow(row)
方法二:用Pandas快速处理(代码更简洁)
如果你愿意安装第三方库,Pandas的CSV处理逻辑同样能自动识别引号内的换行,代码更短:
- 先安装Pandas:
pip install pandas
- 运行修复脚本:
import pandas as pd input_path = "uk_tariff_products.csv" output_path = "fixed_uk_tariff_products.csv" # 读取CSV,自动处理引号内换行 df = pd.read_csv(input_path, encoding='utf-8') # 写入修复后的文件,index=False避免生成多余索引列,quoting=1等价于QUOTE_ALL df.to_csv(output_path, index=False, encoding='utf-8', quoting=1)
注意事项
- 替换代码中的文件路径为你实际的文件路径
- 如果打开文件时出现编码错误,可尝试将
encoding='utf-8'替换为encoding='utf-8-sig'或encoding='latin-1' - 若CSV使用非逗号分隔符,需在读取时指定
delimiter参数(如制表符分隔则加delimiter='\t')
内容的提问来源于stack exchange,提问作者Falk
相关产品推荐
相关产品推荐

