Python3,9行批量提取PDF文件的指定内容,这种操作,保证人见人爱....

news2024/12/29 10:21:35

批量提取PDF文件指定内容

  • 1、引言
  • 2、代码实战
    • 2.1 介绍
    • 2.2 安装
    • 2.3 实例
  • 3、总结

1、引言

小屌丝:鱼哥, 你有没有什么办法,提取PDF文档的内容。
小鱼:这个还问我??
小屌丝:哎呀,这个不是被难住了嘛 。
小鱼:有啥难得?提示你一下,
小屌丝:嗯,可以可以。
小鱼:去我的博文找,没记错的话,有两种方法提取pdf的文字。
小屌丝:好嘞, 我这就去…找找…
在这里插入图片描述
小屌丝:鱼哥,鱼哥~
小鱼:怎么样,你的这个需求,解决了吧。
小屌丝:没呢,我想批量提取指定PDF文档的内容…
小鱼:批…量…
小屌丝:对啊,是批量,
小鱼:这…还挺…
小屌丝:挺费劲吗?
小鱼:挺好的 ,不费劲, 一口气,上7楼…
小屌丝:打住… 说正事! !
小鱼:好嘞…

想到提取PDF文件的内容,我们第一反应就是pypdf,
因为pypdf这个库我在很多篇文章都介绍过, 还蛮好用的。
但是,今天,我们不使用pypdf,而是使用另一个库,即:pdfminer
在这里插入图片描述

2、代码实战

2.1 介绍

pdfminer我相信很多同学都没听说过,除非,你经常提取/解析PDF文件的内容,否则,你对ta,只能是陌生。

其实,提取PDF文件内容解决方案,截止到现在, 只有pypdf 和pdfminer这两种。
所以, 如果你厌倦了, pypdf,那只能选择pdfminer了。

那什么是pdfminer 呢,或者 pdfminer有什么神奇之处呢?

  • 定义
    • PDFMiner是用于从PDF文档提取信息的工具;
    • 与其他PDF相关工具不同,它完全专注于获取和分析文本数据;
  • 功能
    • PDFMiner允许获取页面中文本的确切位置以及其他信息,例如字体或线条;
    • 它包括一个PDF转换器,可以将PDF文件转换为其他文本格式(例如HTML);

2.2 安装

由于pdfminer是python 的第三方库, 所以,需要安装,
老规矩, 直接pip 安装
安装

pip install pdfminer

安装完成:
在这里插入图片描述

因为我们需要用到 pdfminer的high_level 方法,所以
这里必须要在安装pdfminer.six模块,否则会报错:

安装

pip install pdfminer.six

安装完成:
在这里插入图片描述

其它安装方式,直接看这两篇:

  • Python3,选择Python自动安装第三方库,从此跟pip说拜拜!!
  • Python3:我低调的只用一行代码,就导入Python所有库!

2.3 实例

安装完成,我们就来写上代码,
我们先来捋顺一下思路,主要分3步:

  • 1、遍历pdf文件
    • :如果文件夹的文件多个,需要单独提取目标pdf文件,否则都会轮巡匹配,费事费力费资源;
  • 2、提取pdf文档内容
  • 3、根据正则匹配,提取需要的文档信息

我们就根据这个思路,来提取"企业基本情况",代码如下:

代码示例

# -*- coding:utf-8 -*-
# @Time   : 2022-11-30
# @Author : Carl_DJ


from pdfminer import high_level
import re,os

#pdf文件路径
#root:文件夹路径,dirs:文件夹下子目录名,files:文件夹下的文件
for root,dirs,files in os.walk('./data/'):
    #遍历pdf文件
    for f in files:
        file_name = os.path.join(root,f)
        if file_name.endswith('.pdf'):
            #提取整个 pdf 文本信息
            text = high_level.extract_text(file_name)
            #提取 pdf文档中 "企业进本情况:" 后面的信息,利用正则进行匹配
            regex = r'企业基本情况-(.*?)\n'
            qy_base = re.findall(regex,text)
            print(f'输出信息:{qy_base}')


pdf文件
在这里插入图片描述
运行结果
在这里插入图片描述

3、总结

看到这里,今天的分享,差不多就该结束了。
解析PDF是一件非常耗时和耗内存的工作,因此,pdfminer使用一种称作Lazy Parsing的策略,减少内耗…
小屌丝:怪不得, 提到批量提取pdf的文档内容, 你会犹豫了…
小鱼:对啊,因为我们的的测试文档内容很少,所以对内存的消耗相对来说没那么验证,当PDF文档的内容很多时, 就不得不使用pdfminer了。

并且, 关于pdf文档的内容提取,我们能多学习几个技能,就多学习几个技能。

技能多了,路就多了,最后,收入也就多了。

我是小鱼

  • CSDN 博客专家
  • 阿里云社区 专家博主
  • 金牌面试官
  • 51 讲师

关注我,带你学习更多更有趣的Python知识。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/73678.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

leetcode题17电话号码的字母组合-java题解-回溯篇

说明:问题描述来源leetcode: 一、问题描述: 17. 电话号码的字母组合 难度中等2219 给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。答案可以按 任意顺序 返回。 给出数字到字母的映射如下(与电话按键相同)。注…

【踩坑专栏】关于实现异步多线程的一些踩坑

在实现基于redis的分布式锁的时候,有一项功能,就是通过开启异步线程,对还没有unlock的key进行定时刷新,延长时间。 初始版本是New一个线程start。我们知道New一个线程,用了没多久又抛弃,这种方法非常消耗资…

【浅学Java】SpringBoot 日志文件

SpringBoot 日志文件1. 认识日志文件1.1. 日志文件有什么用?1.2 日志文件的格式2. 自定义日志文件的打印3. 日志的持久化3.0 什么时日志持久化3.1 设置日志名称3.2 设置日志目录3.3 持久化日志的特点4. 日志的级别5. 设置“日志级别”来筛选日志6. 简化日志打印——…

量子计算(十二):量子线路与测量操作

文章目录 量子线路与测量操作​​​​​​​ 量子线路与测量操作​​​​​​​ 量子线路是由代表量子比特演化的路线和作用在量子比特上的量子逻辑门组成的。量子线路产生的效果,等同于每一个量子逻辑门依次作用在量子比特上。在真实的量子计算机上,最…

HTML CSS游戏官网网页模板 仿绝地求生吃鸡游戏网站 大学生游戏介绍网站毕业设计 DW游戏主题网页模板下载

🎉精彩专栏推荐👇🏻👇🏻👇🏻 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 💂 作者主页: 【主页——🚀获取更多优质源码】 🎓 web前端期末大作业…

[附源码]Python计算机毕业设计Django影院管理系统

项目运行 环境配置: Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术: django python Vue 等等组成,B/S模式 pychram管理等等。 环境需要 1.运行环境:最好是python3.7.7,…

使用yum info查看软件包信息与常用软件包

记录:357 场景:在CentOS 7.9操作系统上,使用yum info查看软件包信息,包括软件包名称、适用架构、版本号、发行版、软件大小、仓库名称、概要、URL、许可证、描述。 版本: 操作系统:CentOS 7.9 1.iptabl…

【现代机器人学】学习笔记三:前向运动学(Forward Kinematics)

这节的内容比较简单,主要配合习题来看。 在掌握方法以后,对常规的有许多移动副或转动副结构组成的机械臂,计算正向运动学则非常简单。 齐次变换法: 这种方法的特点是,只研究当前关节和上一个关节的旋转平移&#xf…

供应商关系管理与企业内容管理 (ECM) 相结合,帮助解决采购存在的五个关键挑战

供应商关系管理与企业内容管理 (ECM) 相结合,帮助解决采购存在的五个关键挑战 采购过程包括将制造需求转化为供应商需求、如何管理供应商关系、以及生产产品所需的商品和服务的订购。 领先的制造、制药、食品和自然资源组织正在意识到&#…

【性能优化】pc端与移动端图片性能优化

目录 优化方向 优化方式 1.域名收敛 2.使用CDN节点 3.设置缓存 4.图片懒加载 5.用户图片上传限制 6.使用OSS服务压缩 7.使用OSS缩放 8.合成雪碧图 9.使用svg图片 在前端项目中图片的性能优化也有不少可以提升的地方,那么有哪些性能优化的点呢&#xff1f…

[附源码]Python计算机毕业设计Django游戏交易平台

项目运行 环境配置: Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术: django python Vue 等等组成,B/S模式 pychram管理等等。 环境需要 1.运行环境:最好是python3.7.7,…

NEMUCOD病毒jse样本分析

该病毒使用微软的JScript编写,能够直接运行在Windows操作系统之上,采用了加密和混淆手段对抗监测,可检测是否运行在虚拟机中和系统中是否存在分析工具,可感染可移动存储介质,主要功能为下载器。CC服务器为185.159.82.1…

牛客网刷题【BC114\BC123\BC125\BC13\BC93\BC95】

目录 一、BC114 小乐乐排电梯 二、BC123 小乐乐找最大数 三、BC125 小乐乐转换成绩 四、BC13 ASCII码 五、BC93 统计数据正负个数 六、BC95 最高分与最低分之差 一、BC114 小乐乐排电梯 #include <stdio.h>int main() {int n0;scanf("%d",&n…

Aspose.Words 22.12.0 for NET cRACK

.NET API 来处理 Word 文件 无需使用外部软件即可创建、编辑、呈现 Word 文档并将其转换为多种格式。您还可以生成报告以可视化数据。 .NET 的 Aspose.Words Aspose.Words for .NET 是一种高级文档处理 API&#xff0c;可对各种文件格式执行广泛的管理和操作任务。API 支持…

(文章复现)5.基于BP神经网络的风电功率预测方法(MATLAB程序)

联系方式&#xff1a;2645521500 复现文章&#xff1a; 基于BP神经网络的风电功率预测方法——刘立群&#xff08;2021年&#xff09; 摘要&#xff1a; 风电功率预测结果的准确性&#xff0c;不仅关系到风力发电厂的综合运行效率&#xff0c;也与区域运行成本具备直接联系…

Java面试-MySQL事务专题

链接&#xff1a;https://pan.baidu.com/s/1mw4sej8BzdHNCkaib4ebeg 提取码&#xff1a;j2qu 1 事务的四个特点是什么&#xff1f;他们是如何实现的&#xff1f; ACID-原子性、一致性、隔离性和持久性。 ACID原理原子性undolog一致性通过其他三个特性来实现的隔离性锁MVCC持…

java计算机毕业设计ssm校园志愿者服务系统u7thd(附源码、数据库)

java计算机毕业设计ssm校园志愿者服务系统u7thd&#xff08;附源码、数据库&#xff09; 项目运行 环境配置&#xff1a; Jdk1.8 Tomcat8.5 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xf…

初学者必刷题---PTA基础编程题目集第一期

&#x1f680;write in front&#x1f680; &#x1f4dd;个人主页&#xff1a;认真写博客的夏目浅石. &#x1f381;欢迎各位→点赞&#x1f44d; 收藏⭐️ 留言&#x1f4dd;​ &#x1f4e3;系列专栏&#xff1a;初学者必刷题—鹏哥推荐 &#x1f4ac;总结&#xff1a;希望…

STC 51单片机62—— Proteus仿真多位数码管稳定显示 不抖动

#include<reg52.h> #include<intrins.h> #define uchar unsigned char #define uint unsigned int //uchar code dis_code[]{0x80,0xf8,0x82,0x92,0x99,0xb0,0xa4,0xf9}; //共阳数码管段码表 //共阴字形码表【实验】数码管实验时&#xff0c;一定要将点阵模块跳…

玩转系统|如何Windows Update自动更新

目录 为什么要关闭Windows自动更新&#xff1f; 1、防止在工作时间突然中断计算机。 2、应用程序兼容性变差。 可能会导致系统损坏。 关闭Windows自动更新的几种方法&#xff01; 方法一&#xff1a;通过Windows设置关闭Windows自动更新 方法二&#xff1a;通过组策略编…