Python 使用 python-docx 读取与解析 Word 文档

陈默
陈默
发布时间:2026-10-12| 3人浏览过
原创

本文详细演示如何使用 Python 的 python-docx 库加载 .docx 文件,通过 core_properties 获取作者与创建日期等元数据,遍历 paragraphs 过滤空行并提取纯文本,同时利用 runs 属性精准判断粗体与斜体样式。全程提供可运行的代码示例,适用于自动化文档解析与内容抓取场景。

操作目标与前置条件

本文将指导如何通过 Python 自动读取 Word 文档的结构与内容。开始前需确保已安装第三方库 python-docx。在终端执行以下命令完成环境准备:

$ pip install python-docx

第1步:加载 Word 文档并检查元数据

导入模块后,使用 Document() 方法载入目标文件。加载成功后即可通过 core_properties 访问内置元数据(如标题、关键词、修改时间)。需注意,并非所有 Word 文件都完整填充了这些字段,部分由工具生成的文档可能为空值。

>>> import docx
>>>> doc = docx.Document('document_1.docx')
>>>> doc.core_properties.title
'Research Overview of Adversarial Attacks and Defenses on Graphs'
>>>> doc.core_properties.keywords
'Abstract'
>>>> doc.core_properties.modified
datetime.datetime(2020, 8, 1, 3, 11)

第2步:遍历段落并筛选有效文本

Word 文档的数据按段落(paragraphs)结构化存储,而非按页。由于存在大量换行符或空白字符,直接打印会导致冗余输出。建议遍历列表时判断 paragraph.text 是否为真值,从而跳过空段落:

>>> for index, paragraph in enumerate(doc.paragraphs):
...     if paragraph.text:
...             print(index, paragraph.text)

若需精确提取特定位置的文本,可直接传入索引值。例如获取第 5 段(主标题)和第 6 段(摘要标识)的内容:

>>> doc.paragraphs[5].text
'Research Overview of Adversarial Attacks and Defenses on Graphs'
>>>> doc.paragraphs[6].text
'Abstract '
Python控制台输出显示成功读取的段落文本与元数据结果
运行脚本后在终端打印的有效段落索引与对应文本内容,可用于核对读取是否准确。

第3步:解析段落内的样式属性(Runs)

paragraph 内部进一步划分为多个 runs 对象。同一视觉样式的连续文字会被合并为一个 run,而中途改变格式的文字则会被拆分为新的 run。通过访问 run 对象的 bold 和 italic 属性,即可检测加粗或斜体状态:

>>> doc.paragraphs[5].runs[0].bold
True
>>>> doc.paragraphs[7].runs[0].text
'Deep neural networks'
>>>> doc.paragraphs[7].runs[0].bold
True
>>>> doc.paragraphs[7].runs[13].text
'DNNs'
>>>> doc.paragraphs[7].runs[13].italic
True

完成判断与常见问题排查

  • 元数据缺失:若读取 core_properties 返回空字符串或报错,说明该 Word 文件未保留底层元数据,属正常现象。
  • 样式断裂:Word 排版中频繁切换字体或大小会导致一个自然段被切分成数十个 runs。处理复杂样式表时,建议先按 runs 分组再聚合文本,避免丢失格式标记。

总结

以上就是使用 Python 配合 python-docx 库读取与解析 Word 文档的详细内容,更多关于自动化提取文档元数据、段落文本及富文本样式的资料请关注本站其它相关文章!

相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。