我们在做一些数据统计或分析的时候,有时会接触到Execl 格式或者Word 格式的文件。Execl格式的数据提取和解析,我们在之前的文章分享过一些非常好用的Python第三方库,本文中主要介绍如何使用Python python-docx 模块提取Word 文件中的文本信息和表格数据。
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文件中的表单信息,按行提取出来,存储到列表中,列表每个元素为一个表格的数据,数据结构为字典,执行上述代码输出结果如下:
提取包含指定关键字的文本
我们基于上述自定义封装函数extract_text、extract_form,结合re 模块即可以实现提取包含关键字的文本内容,代码实现如下:
如上,我们实现了提取docx文本中包含指定内容的文本信息,并输出该内容所在行,执行上述代码,输出结果为:
使用python操作Excel,哪个库比较方便易学?
Python对Excel的操作我主要用xlwt、xlrd、xlutils这三个库。
xlwt主要用来创建并写入数据到Excel。已经存在的表不可以写入。
以下使用Python写九九乘法表到Excel
运行之后,代码文件所在的文件夹会多出一个”九九乘法表“的Excel,内容如下图:
xlrd主要用来读取Excel的数据。
以下使用Python读取刚刚写入的九九乘法表。
打印结果如下图:
使用xlutils的copy函数来变相更改Excel的数据
配合xlrd库来更改
运行之后,文件夹又多出一个”九九乘法表改版“的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的代码:
方法一:利用xlrd和xlwt进行excel读写,这里只能是xls类型excel
首先,安装的话,直接输入命令"pip install xlrd"和"pip install xlwt"就行,如下:
-
xlrd读excel
主要代码如下,主要包括读取行列和单元格的值,以及表格总行数和列数等,比较简单:
程序运行截图:
-
xlwt写excel
主要代码如下,很简单:
程序运行后,save.xls文件内容截图如下:
方法二:利用openpyxl读写excel,注意这里只能是xlsx类型的excel
安装的话,直接输入命令"pip install openpyxl"就行,很快就能安装完毕。
-
读excel
主要代码如下:
程序运行截图如下:
-
写excel
主要代码如下:
程序运行后,new.xlsx保存的内容如下:
方法三:利用pandas读取excel,这里就很简单了,pandas是一个数据处理的包,本身提供了许多读取文件的函数,像read_csv(读取csv文件),read_excel(读取excel文件)等,只需一行代码就能实现文件的读取
-
读excel
主要代码如下,就1行代码搞定,注意这里的data是DataFrame类型:
程序运行截图如下:
-
写excel
主要代码如下:
程序运行后,new.xls文件保存内容如下:
至此,我们就完成了excel的读写。总的来说,这3种方法都很简单,尤其是第3种方法,1行代码就搞定,在数据处理中,经常会用到pandas这个包,功能很强大,当然还有许多其他的包也可以完成excel的读写,我这里就不一一详细列举了,感兴趣的话可以到网上搜一搜相关资料和教程,了解了解,帮助很大,希望以上分享的内容能对你有所帮助吧。
如何使用Python读取Excel文件?
用pandas库,非常方便。