摘要:最近需要将一批PDF文件中的某些数据整理到Excel中,因为文件数量接近20w+,手动更新几乎不现实,于是就提取关键词和内容动手写了个Python小工具,以实现自动完成上述目标。
作者博客地址:http://www.yooongchun.com/
注意:如果是提取PDF发票内容,请参考这篇文章:https://blog.csdn.net/zyc121561/article/details/80933496 如果是提取表格内容,请参看这篇文章:https://blog.csdn.net/zyc121561/article/details/82860316
-
要求:
- 读取PDF文件找到特定关键字,然后读取其对应的数值提取出来
- 在Excel中查找对应关键字,然后在对应位置把上面提取出来的内容填进去
-
基本实现过程:
- 遍历文件夹,按照特定的要求找出指定类型的PDF文件
- 解析PDF文件
- 提取指定内容和对应值
- 更新数据到Excel
-
所需工具:
- 解析PDF文件的模块:pdfminer
- 操作Excel的模块:xlwt、xlrd、xlutils
- 注意:要在一个已经存在的Excel中写入数据需要配合xlutils使用,即先copy一个Excel对象,在该对象中进行写入,最后删除原对象而保存copy出来的对象
- io操作:os模块
- 匹配PDF文件:re模块
-
代码实现:
-
首先,把手工配置好的要求信息读入,主要包括各种文件提取规则,提取内容和文件的读写路径
-
接着需要把刚才读入的规则按照特定的格式抽取出来
-
使用读入的路径来初始化程序的文件操作路径
-
现在到指定的目录去读取文件夹
-
读取Excel,把内容加载到程序中
-
根据指定的规则来抽取Excel中的特定内容,用来之后匹配文件,找到应写入数据的对应位置
-
按照上面得到的文件序列来匹配文件夹名称,找到匹配的PDF文件目录
-
从前面匹配得到的PDF文件目录中抽取得到特定类型的PDF文件,抽取的规则是配置文件指定的
-
解析PDF文件,转换为可读取的TXT文件
-
遍历解析所有PDF文件
-
从转换出来的txt文件中抽取指定内容
-
把文件内容按照匹配原则写入Excel中
-
使用一个遍历程序把所有解析出来的PDF文件抽取内容并写入到Excel中
-
为了保证程序功能模块的独立,需要另外写两个小函数,分别完成获取文件类型和匹配特定类型文件的功能,这两个属于特殊情况
-
程序的主函数内容
-
-
打包为exe可执行程序
Python程序要在没有安装Python开发包的电脑上运行的话,需要打包发布,Python提供了程序来实现一键打包,首先下载安装模块,
安装完成后搜索找到 复制到你想要打包的文件的位置,也就是你的 文件的位置,然后使用命令行执行:
比如我的 放在了 路径下,同时里面还有一个 的文件我想要打包成 程序,那么我的运行命令就是:
现在如果一切正常的话程序就会运行在当前目录下生成 、 、 、 的四个文件,需要的运行程序在 目录下,里面除了 程序外会有许多文件,那是程序运行需要的支持文件。
当然, 还提供了更丰富的打包功能,比如加入自己的程序图标,程序运行时不显示命令行窗口等,这个就自己探索了!
-
程序的使用说明文档: