首页/AI/RAG 与向量库速查/python-docx 解析 Word 文档

python-docx 解析 Word 文档

python-docx 读取 Word 的段落、样式与表格;段落样式(Heading 1/2)可用于构造标题路径,是制度、方案类文档入库的常用解析方式。

RAG 与向量库速查AI更新于 2026-10-13

Word 文档怎么解析

用对应语言的文档库可以读取 Word 的段落、样式与表格。段落样式(如标题一、标题二)能用来还原层级,配合文本内容生成章节路径,是制度、方案、报告类文档入库的常用方式。相比 PDF,它没有版面还原问题,解析质量主要取决于编写规范程度。

基本信息

解析对象段落、样式、表格、节
层级来源段落样式名称(标题一、标题二等)
输出建议文本加标题路径元数据
常见问题手工排版导致样式与视觉层级不一致

段落与表格

段落与表格
from docx import Document

doc = Document("spec.docx")
for para in doc.paragraphs[:5]:
    print(para.style.name, "|", repr(para.text[:60]))
for t in doc.tables:
    for row in t.rows:
        print([c.text for c in row.cells])

使用要点

  • 按样式而非字号判断层级:字号是视觉属性,样式才表达结构
  • 维护标题栈:遇到标题层级时更新当前路径,正文段落带上完整路径
  • 表格单独遍历:段落列表不包含表格里的文字
  • 保留空段落用于分节判断,但不要在切片里留大段空白
  • 解析后统计样式分布,异常多的默认样式通常意味着文档手工排版

元素与读取方式

元素读取方式注意
正文段落段落列表含空段落
表格独立的表格集合需单独遍历
标题层级段落样式名称依赖编写规范
批注与修订常规接口读不到重要文档需换工具

常见问题

  • 层级识别失败:文档用加粗大字号人工排版,样式仍是正文
  • 表格内容缺失:只遍历了段落未遍历表格
  • 空段落过多:切片被大段空白稀释,检索效果下降
  • 同一样式承担多种用途:需要结合上下文与编号规则辅助判断
结合样式名称判断标题层级,为每个切片生成标题路径(例如「3 实施方案 > 3.2 时间表」),引用与检索展示都会更清晰。

规范化建议

  • 入库前先检查样式使用情况,异常文档退回业务方统一格式
  • 为每份文档记录解析时的样式统计,便于发现批量质量问题
  • 章节编号与样式不一致时以样式为准,避免同一文档出现两套层级
  • 把标题路径写入切片元数据,答案引用可直接指到具体小节

易错点

  • 段落集合不包含表格里的文字,表格必须单独遍历
  • 批注、修订等高级内容读不到,重要文档要换工具或转格式
  • 按字号判断标题层级,遇到手工排版的文档层级识别全错
  • 不保留标题路径,切片脱离上下文后无法说明属于哪一章节

数据来源与参考

  • python-docx 官方文档(python-docx.readthedocs.io)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌