我们在做一些数据统计或分析的时候,有时会接触到Execl 格式或者Word 格式的文件。Execl格式的数据提取和解析,我们在之前的文章分享过一些非常好用的Python第三方库,本文中主要介绍如何使用Python python-docx 模块提取Word 文件中的文本信息和表格数据。
python-docx 安装
本文python-docx 安装 在Windows 10系统,Python3 环境中使用pip进行安装。
演示文本
为了方便理解,我们以 python-docx.docx 文件为例,演示如何使用Python 提取其中的文本数据和表格数据,并开发自定义函数以字典的形式提取内容,python-docx.docx文件内容如下:
在使用python-docx 读取word文档中文本之前,我们先了解下python-docx 模块的几个概念。
- Document 对象,表示一个Word文档。
- Paragraph 对象,表示Word文档中的一个段落。
- Paragraph 对象的text属性,表示段落中的文本内容。
提取docx文件中文本信息
使用python-docx 提取docx文件中文本数据,Python实现代码如下:
如上,我们将python-docx.docx 文件中的文本信息,按行提取出来,存储到字典中,字典的Key为行号,Value为文本信息,执行上述代码,输出结果如下:
提取docx文件中表格数据
使用python-docx 提取docx文件中表格数据,Python实现代码如下:
如上,我们将python-docx.docx 文件中的表单信息,按行提取出来,存储到列表中,列表每个元素为一个表格的数据,数据结构为字典,执行上述代码输出结果如下:
写入数据到docx文件中
我们同样可以利用python-docx 模块,实现docx文件的数据写入,如标题、字号、引用、列表、图片插入等等。由于如下代码注释中说明比较详细,此处不做过多介绍,代码如下:
执行上述代码,写入数据保存至testops—docx.docx 文件中,内容如下:
提取包含指定关键字的文本
我们基于上述自定义封装函数 extract_text、extract_form,结合re 模块,就可以实现提取包含关键字的文本内容,代码实现如下:
如上,我们实现了提取docx 文本中包含指定内容的文本信息,并输出该内容所在行,执行上述代码,输出结果为: