pandas使用read_csv读取txt文件时引号丢失的解决方法
pandas read_csv读取文件保留原始引号的配置方法
问题本质
pd.read_csv默认将双引号识别为CSV格式的标准字段包裹符,读取流程中会自动剥离字段首尾的引号、处理内置转义逻辑。示例文件行中存在未转义的嵌套双引号,默认参数下不仅会丢失引号内容,还可能触发跨字段的引号匹配,导致字段错位拆分。
示例原始文件行内容:
"1013764";"Test INT"12345678"";"TEST";"TEST";""
原有读取代码:
data = pd.read_csv("TestFile.TXT", sep=";")
该代码未修改引号处理规则,因此会触发默认的引号剥离逻辑,导致结果中引号丢失。
正确配置方案
要完整保留所有原始内容(包括所有引号),只需在调用read_csv时关闭引号识别逻辑即可,需要搭配Python内置的csv模块指定引号处理规则:
import pandas as pd import csv data = pd.read_csv( "TestFile.TXT", sep=";", quoting=csv.QUOTE_NONE, # 可根据文件实际编码调整,常见可选值为utf-8、gbk encoding="utf-8" )
参数说明
quoting=csv.QUOTE_NONE:指示解析器不将任何引号识别为字段包裹符号,按分隔符切分后的所有原始字符都会完整保留,不会自动剥离首尾双引号- 该配置同时能解决文件中未转义嵌套引号导致的字段错位问题
配置完成后读取结果和Notepad++中看到的原始文件内容完全一致,所有引号都会被保留。
内容的提问来源于stack exchange,提问作者Gonçalo
相关产品推荐
相关产品推荐

