Python自动化办公:使用python-docx读取Word文档内容

山间有风
山间有风
发布时间:2026-10-15 | 5人浏览过
原创

本文介绍如何使用Python的python-docx库实现Word文档的自动化读取。通过解析Document对象,获取段落(Paragraph)和表格(Table)内容,提取其中的文本字符串。文章涵盖库的安装、核心概念解析以及具体的代码示例,帮助开发者快速掌握Word文件内容提取技巧。

前言

在前面的章节中,我们已经掌握了普通文件的基本操作,包括文件的创建、复制、粘贴、重命名以及删除等。此外,我们还练习了如何查找文件以及根据内容搜索文件的方法。

接下来的章节将重点介绍针对特殊类型文件的自动化操作,例如Word、Excel和PPT文件。尽管这些文件类型较为特殊,但它们在实际工作场景中极为常见且使用频繁。

现在,让我们正式进入Word文件自动化操作的学习阶段。

本章涉及的新模块

python-docx

pdfkit

pydocx

利用Python批量读取文件

Word处理利器:python-docx

python-docx是一个用于创建和修改微软Word文档的Python库,提供了完整的Word操作功能,是目前最常用的Word处理工具之一。

在使用该库之前,需要理解以下几个核心概念:

  • Document:代表一个Word文档对象。与VBA中的Worksheet不同,Document是独立的,打开不同的Word文档会生成不同的Document对象,它们之间互不影响。
  • Paragraph:代表段落。一个Word文档由多个段落组成。在文档中输入回车键会创建新段落,而Shift+回车则不会分段。
  • Run:表示节段。每个段落由多个Run组成,具有相同样式的连续文本构成一个Run,因此一个Paragraph对象包含一个Run列表。

如下图所示的Word文档结构示意图:

Word文档的结构划分如下所示:

python-docx安装指南

安装步骤如下:

使用pip安装python-docx。如果下载速度较慢,可以更换为国内镜像源(如下所示):

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple python-docx

导入模块的方法:

import docx from docx import …

python-docx中的Document对象详解

导入包与模块的具体方式:

from docx import Document

具体使用方法如下:

Document(word文件地址)

返回值说明:

返回Word文件对象

python-docx:读取段落内容

要读取Word文档,核心在于提取段落和表格内容。无论是段落还是表格,其内部数据均为字符串,我们的目标就是读取这些字符串内容。

首先介绍段落内容的读取方式:

数据来源说明:

document_obj.paragraphs:通过Document对象的paragraphs属性返回段落列表;如果Word文件包含多个段落,则会生成多个段落对象。

使用方法:

通过循环遍历每个段落对象,并调用其text属性获取文本。

演示案例脚本如下:

# coding:utf-8

import os
from docx import Document

path = os.path.join(os.getcwd(), 'test_file/文本.docx')
print("\'文本.docx\' 的路径为:", path)     # 调试路径

doc = Document(path)

for p in doc.paragraphs:
    print(p.text)

运行结果如下:(注:此处文本仅为演示用途,本人并非培训机构!)

python-docx:读取表格内容

接下来介绍如何读取Word文件中的表格内容:

数据来源说明:

document_obj.tables:通过Document对象的tables属性返回表格列表,其中包含各个表格对象。

使用方法:

同样通过循环遍历,获取行与列的具体内容。

返回值说明:

每个表格字段(字符串)

演示案例代码如下:

# coding:utf-8

import os
from docx import Document

path = os.path.join(os.getcwd(), 'test_file/文本.docx')
print("\'文本.docx\' 的路径为:", path)     # 调试路径

doc = Document(path)

# for p in doc.paragraphs:
#     print(p.text)

for t in doc.tables:            # for 循环获取表格对象
    for row in t.rows:          # 获取每一行
        row_str = []
        for cell in row.cells:    # 获取每一行单独的小表格,然后将其内容拼接起来;拼接完成之后再第二个for循环中打印出来
            row_str.append(cell.text)
        print(row_str)
        
# 也可以通过 "columns" 获取表格中的列的内容,可以自己尝试一下

运行结果如下:

至此,关于Python自动化办公中Word文件内容读取的介绍就到这里。如需了解更多Python读取Word内容的相关信息,请搜索本站历史文章或继续浏览后续相关文章,希望大家今后多多支持本站!

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表