在学院做助管时,某老师布置了任务:将1000+个PDF文件的指定内容整理到一个Excel中。为了防止在逐个打开复制粘贴的过程中猝死,尝试编写代码简化此问题。实现的功能主要是将每个PDF的信息分别提取到Excel中的每一行。

需要的模块比较少。

import os
import pdfplumber #解析pdf文件,尤其带有表格的文件
from openpyxl import Workbook #读写Excel的文件

提取PDF信息的函数。

def parse(pdf):targets = [] #保存结果,for page in pdf.pages: words = page.extract_words(x_tolerance=5)for word in words:targets.append(word['text'])return targets#print(targets)

导出至Excel的函数。

def save(targets, out_path, number, sheet_name='targets'):ws.title = sheet_namews._current_row=numberws.append(targets)print(ws)#ws.append(list(targets.values()))wb.save(out_path)

PDF遍历函数。

def pdfFilesPath(path):'''path: 目录文件夹地址返回值:列表,pdf文件全路径'''filePaths = [] # 存储目录下的所有文件名,含路径for root,dirs,files in os.walk(path):for file in files:filePaths.append(os.path.join(root,file))return filePaths

主函数。

# 主函数入口
if __name__ == "__main__":i = 0path = 'pdf地址'pdfpath = pdfFilesPath(path)wb = Workbook()ws = wb.activewhile i < pdf数量:out_path = 'excel输出地址/文件名.xlsx'pdf = pdfplumber.open(pdfpath[i])number = itargets = parse(pdf)save(targets, out_path, number)i += 1print('运行结束!')

完整代码:

import os
import pdfplumber #解析pdf文件,尤其带有表格的文件
from openpyxl import Workbook #读写Excel的文件def parse(pdf):targets = [] #保存结果,for page in pdf.pages: words = page.extract_words(x_tolerance=5)for word in words:targets.append(word['text'])return targets#print(targets)# 保存
def save(targets, out_path, number, sheet_name='targets'):wb = Workbook()ws = wb.activews.title = sheet_namews._current_row=numberws.append(targets)print(ws)#ws.append(list(targets.values()))wb.save(out_path)def pdfFilesPath(path):'''path: 目录文件夹地址返回值:列表,pdf文件全路径'''filePaths = [] # 存储目录下的所有文件名,含路径for root,dirs,files in os.walk(path):for file in files:filePaths.append(os.path.join(root,file))return filePaths# 主函数入口
if __name__ == "__main__":i = 0path = 'pdf地址'pdfpath = pdfFilesPath(path)while i < pdf数量:out_path = 'excel输出地址/文件名.xlsx'pdf = pdfplumber.open(pdfpath[i])number = itargets = parse(pdf)save(targets, out_path, number)i += 1print('运行结束!')

PDF信息批量提取至Excel相关推荐

  1. 发票信息批量提取到 excel 软件 4.0

    个人微信 394467238 4.0 更新 新增了自己的OCR引擎,使用了神经网络模型,但是很可能会导致导入模块失败,并且识别的结果还有很多小问题,所以还请大家使用后反馈问题 新增了用发票号码.发票代 ...

  2. 发票信息批量提取到 excel 软件 3.1

    3.1 更新 基础图片识别完全放开了次数限制,可以完全免费使用了,并且修改了之前的一个会导致闪退的bug 新增了高级PDF批量识别,对于扫描版本的PDF文件可以支持了 3.0 更新 最大的改动为使用次 ...

  3. 发票信息批量提取到 excel 软件 3.0

    3.0 更新 最大的改动为使用次数可以自动获取了,通过微信扫描小程序即可获得 修改了高级图片识别的一些发票项目的bug 2.5更新: 改正了很多影响体验的bug....用起来应该会好多了 2.4更新: ...

  4. 发票信息批量提取到 excel 软件 5.1

    5.1更新 精简入口,合并了图片和PDF的识别入口 修正了一些网络不好的情况下的bug 4.0 更新 新增了自己的OCR引擎,使用了神经网络模型,但是很可能会导致导入模块失败,并且识别的结果还有很多小 ...

  5. 发票信息批量提取到 excel 软件 2.3

    地址更新为: 链接:https://pan.baidu.com/s/1WQQ8kaDilaagjoK5IrYZzA  提取码:1111 日了狗了,电脑还是有木马,下载链接取消了,后续我换台电脑打包软件 ...

  6. 发票信息批量提取到 excel 软件 2.4

    地址更新为: 链接:https://pan.baidu.com/s/1WQQ8kaDilaagjoK5IrYZzA  提取码:1111 个人公众号"代码就是生产力",发布更多有用的 ...

  7. 发票信息批量提取到 excel 软件 2.5

    2.5更新: 改正了很多的bug.... 用起来应该会好多了 2.4更新: 还是有人反馈下载后360检测会有木马,这次花力气把这个问题彻底解决了,首先是换了一台电脑来生成exe文件,发现还是会被360 ...

  8. python提取pdf数据到excel_PDF文本内容批量提取到Excel

    机器学习,统计项目合作QQ:231469242,版权所有 作用:pdf内容批量提取到excel 各位亲朋好友,我才上班时候有个鼓噪乏味工作,就是把一个个PDF内容复制粘贴到Excel表格里面,方便以后 ...

  9. 信息批量提取工具bulk-extractor

    信息批量提取工具bulk-extractor 在数字取证中,通常需要面对海量的数据,如几百GB甚至TB级别的数据.从这些海量数据中,提取有价值的数据是一个漫长.枯燥.繁琐的过程.Kali Linux提 ...

最新文章

  1. 在linux上配置unixODBC和FreeTDS访问MS SQL Server.
  2. 中国水处理行业深度监测及投资发展可行性分析报告2022-2027年新版
  3. Swin Transformer对CNN的降维打击
  4. boost::mp11::mp_max_element_q相关用法的测试程序
  5. python 去除字符串的标点符号 用_Python输入和输出
  6. c#中通过win32API(FindWindowEx)查找控件句柄实例
  7. 傍腾讯,切阿里,拼多多的千亿瞒天术
  8. 84直方图最大矩形覆盖 · Largest Rectangle in Histogram
  9. 【C++入门】C++ List类
  10. RK3288_Android7.1调试以太网ethernet
  11. 关于日期控件被模态框遮盖的问题解析
  12. java 车牌正则表达式_车牌正则表达式
  13. 微型计算机是以微处理器为基础,在计算机中以微处理器为核心组成的微型计算机属于第几代计算机...
  14. miui删除内置不卡米教程_MIUI11卸载系统自带软件,无需ROOT也可以
  15. win7老计算机,windows7旗舰版系统电脑老是自动重启的原因汇总
  16. Linux ubuntu 20.04安装unrar
  17. 原创 关于微信拼车小程序开发的需求分析(分析建模)
  18. mysql和sqlite3 ios_iOS数据库存储之SQLite3
  19. Topaz Mask AI 1.3.7汉化版|AI人工智能抠图插件Topaz Mask AI 1.3.7中文版
  20. html2canvas+jsPDF实现横向打印iframe中的内容

热门文章

  1. 【java网络编程】TCP三次握手、四次挥手,常见Socket通信BIO
  2. 属于未来计算机的睡哪一个,【单选题】下面哪一个不是未来计算机的发展方向? A. 光计算机 B. 量子计算机 C. 电子管计算机 D. 神经网络计算机...
  3. 计算1-10000之间的质数
  4. python界面开发哪个好用_python界面开发工具哪个好?
  5. 《Go语言圣经》笔记
  6. eclipse异常:The sourse attachment dose not contain..
  7. python机票_某哪儿机票JS解密(3)--python调用node产生正确的航线和pre
  8. 计算机英语作文150字,英语作文150字
  9. vsc code-runner插件运行python文件,解释器更改为ananconda
  10. python练习实例——查找整数