读取单多空格混合分隔flat file的最优方法,试过Pandas多分隔符设置无效
读取多空格不规则分隔文件的方案
你的数据本质是固定宽度格式化文本,不是简单的分隔符分隔文本,其中PRD字段本身包含合法空格,这就是你之前直接设置分隔符读取失败的原因——直接按多空格拆分的话会把PRD字段拆成多列,导致数据错位。
推荐你直接用Pandas内置的read_fwf()接口,这是专门用于读取固定宽度文本文件的工具,不需要手动处理分隔符:
最简实现代码
import pandas as pd # 读取本地固定宽度文件,工具会自动推断各列的边界 df = pd.read_fwf("你的本地文件路径.txt") # 直接导出为你需要的逗号分隔CSV格式 df.to_csv("输出文件路径.csv", index=False)
可选:手动指定列边界提升准确率
如果自动推断的列边界和实际数据有偏差,可以手动指定每列的起止位置,对应你给出的样例数据配置如下:
import pandas as pd # 元组内为每列的起止位置,最后一列写None表示读到行尾 col_specs = [ (0, 6), (6, 17), (17, 29), (29, 39), (39, 42), (42, 59), (59, 69), (69, 120), (120, 130), (130, 143), (143, 156), (156, 169), (169, 182), (182, 195), (195, 208), (208, None) ] df = pd.read_fwf("你的本地文件路径.txt", colspecs=col_specs) df.to_csv("输出文件路径.csv", index=False)
运行上述代码后输出的CSV文件就完全符合你给出的目标格式要求。
内容的提问来源于stack exchange,提问作者Syed Nauyan Rashid
相关产品推荐
相关产品推荐

