You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Python/Pandas解析列间空格填充对齐的可变空白文本表格

固定宽度空格对齐文本表格的Python解析方案

这类靠列间填充空格保证对齐、无统一分隔符的表格属于固定宽度文本表(Fixed Width Format Table),无需手动逐行写规则拆分,用以下工具即可高效完成解析,直接对接后续数据分析流程:
表格打印输出示例

核心方案:pandas内置解析能力

优先选择pandas自带的read_fwf()方法,不需要额外安装第三方依赖,适配90%以上的常规固定宽度表格场景:

  • 该函数专门为固定宽度格式设计,默认可以自动识别每列的对齐边界,不需要手动统计每列宽度,直接传入文本或文件路径即可读取为结构化的DataFrame
  • 遇到自动识别不准的场景,可以传入colspecs参数手动指定每列的起止字符位置,微调即可适配
  • 自带表头识别、空值处理、类型转换能力,解析结果直接支持pandas全量数据分析操作

基础用法示例:

import pandas as pd
from io import StringIO

# 读取本地保存的第三方输出文本文件
df = pd.read_fwf("third_party_tool_output.txt")

# 如果输出内容已经是读取到内存的字符串,转成内存流即可解析
raw_text = """从第三方工具拿到的原始表格文本内容"""
df = pd.read_fwf(StringIO(raw_text))

复杂场景适配工具

如果遇到带特殊打印边框、合并单元格、嵌套在PDF里的特殊固定宽度表格,可以搭配以下专用库提升解析准确率:

  • camelot/tabula-py:针对PDF内打印的固定宽度表格优化,识别带线框、跨页表格的准确率远高于通用文本解析方法
  • fixedwidth:轻量级固定宽度文本解析库,支持自定义列校验规则、字符编码适配,适合处理格式特殊的工业类工具打印输出
  • texttable:可以识别带ASCII边框(用+/-/|绘制边框)的老式控制台打印表格,自动忽略边框字符提取有效内容

兜底处理方法

如果遇到格式极度不规整、存在随机冗余空格的特殊输出,可以手动提取表头行中每个字段的起始字符索引,将索引作为列分割标记逐行切片提取内容,再转为DataFrame即可,适配成本远低于编写通用正则规则。

内容的提问来源于stack exchange,提问作者SriK

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.30 16:15:33