Python提取pdf文字信息
Python提取pdf文字信息
需求
今天教务处导出来我们全年级的成绩,一看吓一跳,我们的名字怎么不在文件名里,只能一个个找吗。事情开始变得离谱起来,因为足足有800多份成绩。

不怕,人生苦短,我用Python,思路很简单,使用pdfminer读取pdf文件里的文字信息,剩下的就是一个时间复杂度为\(O(n)\)的查找问题了。
代码
- 文件目录结构
其中 scores存放全学院的成绩,results保存查找结果,main.py是核心代码。
import os
from shutil import copy
from io import StringIO
from pdfminer.pdfinterp import PDFResourceManager, process_pdf
from pdfminer.converter import TextConverter
from pdfminer.layout import LAParams
score_dir = ".\scores"
def readPdf(pdf_file):
rsrcmgr = PDFResourceManager()
retstr = StringIO()
laparams = LAParams()
device = TextConverter(rsrcmgr=rsrcmgr, outfp=retstr, laparams=laparams)
process_pdf(rsrcmgr=rsrcmgr, device=device, fp=pdf_file)
device.close()
content = retstr.getvalue()
retstr.close()
return content
if __name__ == '__main__':
list = ["王五", "张三", "李四"]
file_list = os.listdir(score_dir)
for i in file_list:
# read pdf content
with open(os.path.join(score_dir, i), "rb") as f:
content = readPdf(f)
# search name in content
for search_name in list:
if search_name in content:
# save to results
copy(os.path.join(score_dir, i), os.path.join("./results/", search_name + ".pdf"))
# # save time
# list.remove(search_name)
if len(list) == 0:
break
print("Search successfully!")
总结
复习了一些相关语法,os.listdir(score_dir), copy(os.path.join(score_dir, i), os.path.join("./results/", search_name + ".pdf"))
Python提取pdf文字信息的更多相关文章
- python 提取pdf文字
安装pdfminer 库 windows 下安装pdfminer3k pip install pdfminer3k Liunx 下安装pdfminer pip install pdfminer 代码 ...
- 第一节:python提取PDF文档中的图片
由于项目需要将PDF文档当中的图片转换成图片,所以参考了这篇文章https://blog.csdn.net/qq_15969343/article/details/81673302后项目得以解决. 1 ...
- 个人永久性免费-Excel催化剂功能第88波-批量提取pdf文件信息(图片、表格、文本等)
日常办公场合中,除了常规的Excel.Word.PPT等文档外,还有一个不可忽略的文件格式是pdf格式,而对于想从pdf文件中获取信息时,常规方法将变得非常痛苦和麻烦.此篇给大家送一pdf文件提取信息 ...
- python获取页面文字信息
# -*- coding: utf- -*- from selenium import webdriver import time, re,requests,os,time,random,traceb ...
- 利用python第三方库提取PDF文件的表格内容
小爬最近接到一个棘手任务:需要提取手机话费电子发票PDF文件中的数据.接到这个任务的第一时间,小爬决定搜集各个地区各个时间段的电子发票文件,看看其中的差异点.粗略统计下来,PDF文件的表格框架是统一的 ...
- Python使用Tabula提取PDF表格数据
今天遇到一个批量读取pdf文件中表格数据的需求,样式大体是以下这样: python读取PDF无非就是三种方式(我所了解的),pdfminer.pdf2htmlEX 和 Tabula.综合考虑后,选择了 ...
- tika提取pdf信息异常
org.apache.tika.sax.WriteOutContentHandler$WriteLimitReachedException: Your document contained more ...
- 使用CAJViewer 提取PDF文件中的文字
使用 CAJViewer 7.2 软件,把pdf格式的文件提取出文字. 操作步骤参考:http://jingyan.baidu.com/article/d45ad148cd06e469552b800f ...
- 在线提取PDF中图片和文字
无需下载软件,你就可以在线提取PDF中图片和文字,http://www.extractpdf.com/不仅可以获取本地PDF文档的图片和文字,还能获取远程PDF文档的图片和文字.如下图所示:结果本人测 ...
- 用PDFMiner从PDF中提取文本文字
1.下载并安装PDFMiner 从https://pypi.python.org/pypi/pdfminer/下载PDFMineer wget https://pypi.python.org/pack ...
随机推荐
- FormData接口调用
JAVA调用方式 JAVA原生实现 package com.hisense.demo.utils; import java.io.*; import java.net.HttpURLConnectio ...
- 高通QCM6125平台TZ释放后使用GPIO导致死机问题
问题的根本原因是TZ侧没有释放完整. 释放QUPV3_0_SE0从TZ到AP侧,QUPv3的固件也从SPI改成了UART 2线. 但是出现了一个很奇怪的问题,AP侧可以使用UART,但是一旦使用GPI ...
- C#中如何使用异步编程
在 C# 中,异步编程主要通过 async 和 await 关键字来实现.异步编程的目的是让程序在执行耗时操作(如 I/O 操作.网络请求等)时不会阻塞主线程,从而提高程序的性能. 1. 异步编程的核 ...
- CDS标准视图:维护包描述 I_MaintPackageTextData
视图名称:维护包描述 I_MaintPackageTextData 视图类型:基础 视图代码: 点击查看代码 @EndUserText.label: 'Maintenance Package - Te ...
- Elasticsearch的分享
一.生活中的数据 搜索引擎是对数据的检索,所以我们先从生活中的数据说起.我们生活中的数据总体分为两种: 结构化数据 非结构化数据 结构化数据: 也称作行数据,是由二维表结构来逻辑表达和实现的数据,严格 ...
- 深入理解ReentrantLock的实现原理
文章目录ReentrantLock简介AQS回顾ReentrantLock原理ReentrantLock结构非公平锁的实现原理lock方法获取锁tryRelease锁的释放公平锁的实现原理lock方法 ...
- springboot-总结列表
一.Spring Boot 具有以下特点: 1. 独立运行的 Spring 项目 Spring Boot 可以以 jar 包的形式独立运行,Spring Boot 项目只需通过命令" jav ...
- 金山毒霸提示这是高危入侵行为taskeng.exe
如果安装了金山毒霸之后经常会弹窗提示:这是高位入侵行为.行为发起taskeng.exe.可疑进程regsvr32.EXE,可疑路径antivirus.php,如下入所示: 可以直接点击"阻止 ...
- 深入解析 Spring AI 系列:分析 Spring AI 可观测性
今天我们将讨论之前略过的可观测性部分的代码.在这里,我想简单说明一下,当时这部分代码属于必须编写的固定模板,因此在最初的讨论中我们直接跳过了它.虽然这部分代码乍看之下可能显得比较复杂,但实际上它的核心 ...
- VulNyx - Internal
扫描发现有三个端口 basic验证需要用户名密码登录 访问80端口 \URLFinder 发现有个internal的php文件 看看有无任意文件读取漏洞 发现没有回显 但是总感觉怪怪的 应该是有啥东西 ...