用python提取word里面的内容,如何用Python批量提取word里指定内容并输出为Excel?

我们在做一些数据统计或分析的时候,有时会接触到Execl 格式或者Word 格式的文件。Execl格式的数据提取和解析,我们在之前的文章分享过一些非常好用的Python第三方库,本文中主要介绍如何使用Python python-docx 模块提取Word 文件中的文本信息和表格数据。

python-docx 安装

我们在Windows 10 Python3 环境中使用pip进行安装。

用python提取word里面的内容,如何用Python批量提取word里指定内容并输出为Excel?


演示文本

为了方便理解,我们以python-docx.docx文件为例,演示如何使用Python提取其中的文本信息和表格数据,并开发自定义函数以字典的形式提取内容,python-docx.docx文件内容如下:

用python提取word里面的内容,如何用Python批量提取word里指定内容并输出为Excel?

在使用python-docx读取word文档中文本之前,我们先了解下python-docx模块的几个概念。

  • Document 对象,表示一个Word文档。
  • Paragraph 对象,表示Word文档中的一个段落。
  • Paragraph 对象的text属性,表示段落中的文本内容。



提取docx文件中文本信息

使用python-docx提取docx文件中文本数据,Python实现代码如下:

用python提取word里面的内容,如何用Python批量提取word里指定内容并输出为Excel?

如上,我们将python-docx.docx文件中的文本信息,按行提取出来,存储到字典中,字典的key为行号,value为文本信息,执行上述代码,输出结果如下:

用python提取word里面的内容,如何用Python批量提取word里指定内容并输出为Excel?


提取docx文件中表格数据

使用python-docx 提取docx文件中表格数据,Python实现代码如下:

用python提取word里面的内容,如何用Python批量提取word里指定内容并输出为Excel?

如上,我们将python-docx.docx文件中的表单信息,按行提取出来,存储到列表中,列表每个元素为一个表格的数据,数据结构为字典,执行上述代码输出结果如下:

用python提取word里面的内容,如何用Python批量提取word里指定内容并输出为Excel?


提取包含指定关键字的文本

我们基于上述自定义封装函数extract_textextract_form,结合re 模块即可以实现提取包含关键字的文本内容,代码实现如下:

用python提取word里面的内容,如何用Python批量提取word里指定内容并输出为Excel?

如上,我们实现了提取docx文本中包含指定内容的文本信息,并输出该内容所在行,执行上述代码,输出结果为:

用python提取word里面的内容,如何用Python批量提取word里指定内容并输出为Excel?

使用python操作Excel,哪个库比较方便易学?

Python对Excel的操作我主要用xlwt、xlrd、xlutils这三个库。

xlwt主要用来创建并写入数据到Excel。已经存在的表不可以写入。

以下使用Python写九九乘法表到Excel

用python提取word里面的内容,如何用Python批量提取word里指定内容并输出为Excel?

运行之后,代码文件所在的文件夹会多出一个”九九乘法表“的Excel,内容如下图:

用python提取word里面的内容,如何用Python批量提取word里指定内容并输出为Excel?

xlrd主要用来读取Excel的数据。

以下使用Python读取刚刚写入的九九乘法表。

用python提取word里面的内容,如何用Python批量提取word里指定内容并输出为Excel?

打印结果如下图:

用python提取word里面的内容,如何用Python批量提取word里指定内容并输出为Excel?

使用xlutils的copy函数来变相更改Excel的数据

配合xlrd库来更改

用python提取word里面的内容,如何用Python批量提取word里指定内容并输出为Excel?

运行之后,文件夹又多出一个”九九乘法表改版“的Excel表格。内容如下:

用python提取word里面的内容,如何用Python批量提取word里指定内容并输出为Excel?

Python能否依据表格中的某些数据将excel表格本身进行排序?

当然是可以的。

首先,Python提供了很多库可以用来操作Excel ,例如xlrd用于读取Excel,xlwt用于写入Excel,xlutils用于修改Excel。

此外,Python的中还有pandas库可以轻松实现这个需求,使用read_table方法读取Excel中的表格数据,然后使用pandas处理表格数据,最后重新写回Excel即可。

python如何读写excel表格?有哪些比较简单的方法可供参考?

python读写excel的方式有很多,这里我介绍3种方式,一种是利用xlrd和xlwt进行excel读写,一种是openpyxl读写,最后一种是利用pandas进行读写,下面我主要介绍一下3种方式读写的过程,实验环境win7+python3.6+pycharm5.0,主要步骤如下:

为了方便演示,我这里新建了一个test.xls文件,主要内容如下,用于测试读excel的代码:

用python提取word里面的内容,如何用Python批量提取word里指定内容并输出为Excel?

方法一:利用xlrd和xlwt进行excel读写,这里只能是xls类型excel

首先,安装的话,直接输入命令"pip install xlrd"和"pip install xlwt"就行,如下:

用python提取word里面的内容,如何用Python批量提取word里指定内容并输出为Excel?

  • xlrd读excel

主要代码如下,主要包括读取行列和单元格的值,以及表格总行数和列数等,比较简单:

用python提取word里面的内容,如何用Python批量提取word里指定内容并输出为Excel?

程序运行截图:

用python提取word里面的内容,如何用Python批量提取word里指定内容并输出为Excel?

  • xlwt写excel

主要代码如下,很简单:

用python提取word里面的内容,如何用Python批量提取word里指定内容并输出为Excel?

程序运行后,save.xls文件内容截图如下:

用python提取word里面的内容,如何用Python批量提取word里指定内容并输出为Excel?

方法二:利用openpyxl读写excel,注意这里只能是xlsx类型的excel

安装的话,直接输入命令"pip install openpyxl"就行,很快就能安装完毕。

  • 读excel

主要代码如下:

用python提取word里面的内容,如何用Python批量提取word里指定内容并输出为Excel?

程序运行截图如下:

用python提取word里面的内容,如何用Python批量提取word里指定内容并输出为Excel?

  • 写excel

主要代码如下:

用python提取word里面的内容,如何用Python批量提取word里指定内容并输出为Excel?

程序运行后,new.xlsx保存的内容如下:

用python提取word里面的内容,如何用Python批量提取word里指定内容并输出为Excel?

方法三:利用pandas读取excel,这里就很简单了,pandas是一个数据处理的包,本身提供了许多读取文件的函数,像read_csv(读取csv文件),read_excel(读取excel文件)等,只需一行代码就能实现文件的读取

  • 读excel

主要代码如下,就1行代码搞定,注意这里的data是DataFrame类型:

用python提取word里面的内容,如何用Python批量提取word里指定内容并输出为Excel?

程序运行截图如下:

用python提取word里面的内容,如何用Python批量提取word里指定内容并输出为Excel?

  • 写excel

主要代码如下:

用python提取word里面的内容,如何用Python批量提取word里指定内容并输出为Excel?

程序运行后,new.xls文件保存内容如下:

用python提取word里面的内容,如何用Python批量提取word里指定内容并输出为Excel?

至此,我们就完成了excel的读写。总的来说,这3种方法都很简单,尤其是第3种方法,1行代码就搞定,在数据处理中,经常会用到pandas这个包,功能很强大,当然还有许多其他的包也可以完成excel的读写,我这里就不一一详细列举了,感兴趣的话可以到网上搜一搜相关资料和教程,了解了解,帮助很大,希望以上分享的内容能对你有所帮助吧。

    如何使用Python读取Excel文件?

    用pandas库,非常方便。

    版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 xxx@163.com 举报,一经查实,本站将立刻删除。

    发表评论

    登录后才能评论