盘点一个批量提取pdf文件目标信息的实用案例

Python进阶者
• 阅读 92

大家好,我是皮皮。

一、前言

前几天在帮助粉丝解决问题的时候,遇到一个简单的小需求,需要批量提取pdf文件目标信息,这里拿出来跟大家一起分享,后面再次遇到的时候,可以从这里得到灵感。

二、需求澄清

下面他下载的pdf文件,有几百个文件,这里拿出部分做示例,每个pdf文件里边有一个统一社会信用代码,后面的数字和字符是他的目标信息,需要提取出来。

盘点一个批量提取pdf文件目标信息的实用案例

三、实现过程

这里实现主要借用了pdf文件读取库和正则表达式来提取,先给出单个pdf文件提取的方法,代码如下所示:

from pdfminer import high_level
import re

text = high_level.extract_text('1.pdf')  # 提取pdf中的文本信息
# print(text)
regex = r'统一社会信用代码:(.*?)\n'
xinyongcode = re.findall(regex, text)
print(xinyongcode)

有了前面的代码打底之后,接下来就可以实现批量处理了,代码如下所示:

from pdfminer import high_level
from pdfminer.layout import LTTextContainer  # 文本容器
import re
import os

for root, dirs, files in os.walk('./'):
    # root 表示当前正在访问的文件夹路径; dirs 表示该文件夹下的子目录名list;files 表示该文件夹下的文件list
    # 遍历文件
    for f in files:
        file_name = os.path.join(root, f)
        if file_name.endswith('.pdf'):
            text = high_level.extract_text(file_name)  # 提取pdf中的文本信息
            regex = r'统一社会信用代码:(.*?)\n'
            xinyongcode = re.findall(regex, text)
            print(xinyongcode[0])

代码运行之后,可以依次得到所有文件携带的目标信息,如下图所示:

盘点一个批量提取pdf文件目标信息的实用案例

剩下的工作就不多赘述了,大家自行考虑即可。

三、总结

大家好,我是皮皮。这篇文章主要盘点一个批量提取pdf文件目标信息的实用案例,文中针对该问题,给出了具体的解析和代码实现,帮助粉丝顺利解决了问题。

点赞
收藏
评论区
推荐文章
blmius blmius
1年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
Peter20 Peter20
1年前
mysql中like用法
like的通配符有两种%(百分号):代表零个、一个或者多个字符。\(下划线):代表一个数字或者字符。1\.name以"李"开头wherenamelike'李%'2\.name中包含"云",“云”可以在任何位置wherenamelike'%云%'3\.第二个和第三个字符是0的值wheresalarylike'\00%'4\
Wesley13 Wesley13
1年前
FLV文件格式
1.        FLV文件对齐方式FLV文件以大端对齐方式存放多字节整型。如存放数字无符号16位的数字300(0x012C),那么在FLV文件中存放的顺序是:|0x01|0x2C|。如果是无符号32位数字300(0x0000012C),那么在FLV文件中的存放顺序是:|0x00|0x00|0x00|0x01|0x2C。2.  
Easter79 Easter79
1年前
Twitter的分布式自增ID算法snowflake (Java版)
概述分布式系统中,有一些需要使用全局唯一ID的场景,这种时候为了防止ID冲突可以使用36位的UUID,但是UUID有一些缺点,首先他相对比较长,另外UUID一般是无序的。有些时候我们希望能使用一种简单一些的ID,并且希望ID能够按照时间有序生成。而twitter的snowflake解决了这种需求,最初Twitter把存储系统从MySQL迁移
Wesley13 Wesley13
1年前
Java日期时间API系列36
  十二时辰,古代劳动人民把一昼夜划分成十二个时段,每一个时段叫一个时辰。二十四小时和十二时辰对照表:时辰时间24时制子时深夜11:00凌晨01:0023:0001:00丑时上午01:00上午03:0001:0003:00寅时上午03:00上午0
Stella981 Stella981
1年前
Linux日志安全分析技巧
0x00前言我正在整理一个项目,收集和汇总了一些应急响应案例(不断更新中)。GitHub地址:https://github.com/Bypass007/EmergencyResponseNotes本文主要介绍Linux日志分析的技巧,更多详细信息请访问Github地址,欢迎Star。0x01日志简介Lin
Wesley13 Wesley13
1年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
Python进阶者 Python进阶者
3个月前
盘点一个使用Python实现Excel数理统计的实战问题
大家好,我是皮皮。一、前言前几天在小小明大佬的Python交流群中遇到一个粉丝问了一个使用Python实现Excel数理统计的实战问题,觉得还挺有用的,这里拿出来跟大家一起分享下。!(https://uploadimages.ji
Python进阶者 Python进阶者
9个月前
编写一个闭包函数,要实现的功能是计数功能
大家好,我是皮皮。一、前言前几天在Python最强王者交流群有个叫【杰】的粉丝问了一个Python装饰器的问题,这里拿出来给大家分享下,一起学习下。二、解决过程这里【东哥】给出了解答,其实这个题目就是在考你装饰器的内容。代码如下:count0defwrapper(func):definner(args,kwargs):g
Python进阶者 Python进阶者
1个月前
os.listdir()读出来的文件顺序和本地的顺序不一致,应该怎么做呢?
大家好,我是皮皮。一、前言前几天在帮助粉丝解决问题的时候,遇到一个简单的小需求,这里拿出来跟大家一起分享,后面再次遇到的时候,可以从这里得到灵感。二、需求澄清问题如下所示:问题截图如下所示:三、实现过程这里【崔峰】给了一个思路,使用编码的方式进行解决:一开