【Python】找到含有指定关键词的PDF
一、需求
假设我目前有很多PDF文件,我需要找到含有某些关键词的PDF,并把哪些PDF含有关键字导出。(这些PDF里有的PDF含有我需要的关键词,有些PDF不含有)虽然 ctrl+F 可以完成搜索功能,但当pdf非常多的时候,手动搜索会很麻烦。本文提供的代码可以解决该问题。
二、代码
# CSDN 混沌的矩阵 2022.9.7
# 参考了网上的部分代码
import pdfplumber
import PyPDF2
import re
import os
import csv
import json# 定义函数,得到pdf页数
def get_pages(filename):with open(filename, 'rb' ) as fb:pages = PyPDF2.PdfFileReader(fb).getNumPages()return pages# 利用正则表达式查找关键词,并提取
def get_text(filename, pages, strobj):flag = Falsefind = []ele_len = 0with pdfplumber.open(filename) as pdf:for i in range(0, pages):print('正在搜索'+filename+'的第'+str(i)+'页')find.append(re.findall(strobj, pdf.pages[i].extract_text()))ele_len += len(find[i])print(filename + '搜索完毕')if ele_len != 0:flag = Truereturn flag# 保存表格
def save(pdf_name, judge):# 可以在这里更改保存csv的路径with open('C:\\csv\\report.csv', 'a', newline="", encoding='utf-8') as f_csv:writer = csv.writer(f_csv)writer.writerow([pdf_name, judge])print([pdf_name, judge])# 运行代码
if __name__ == '__main__':# 可以在这里更改保存pdf的路径path = 'C:\\pdf'file_list = os.listdir(path)file_list_copy = file_list[::]objstr = []while True:objstr_input = input('请输入您所需要查找的关键字:')objstr.append(objstr_input)choice = input('请问您还要继续输入关键词吗?输入y继续输入关键字,输入其他结束')if choice == 'Y' or choice == 'y':continueelse:breakfor keyword in objstr:print('正在搜索关键词:'+keyword)for file in file_list_copy:path_filename = path + '\\'+filepages_num = get_pages(path_filename)if get_text(path_filename, pages_num, keyword):try:save(file, keyword)except Exception as e:print(e)with open('rest.txt', 'a', encoding='utf-8') as f:f.write(json.dumps(file_list, ensure_ascii=False))
'''
说明
1、文件寻找路径可以更改,如果使用默认路径,请阅读下文2和3
2、请将目标pdf文件放入c:\pdf文件夹,如果您的电脑上没有该文件夹,请自建,然后将所有pdf放入。
3、生成结果见c:\csv文件夹,如果您的电脑上没有该文件夹,请先建立该文件夹。
4、Python开发版本是3.9
5、csv出现乱码的处理方法
这是正常现象,因为默认excel打开的时候是不带BOM的,解决方法:
(step1)用记事本打开csv文件
(step2)另存为,存的时候名字不用改,然后把编码格式改为带BOM的UTF-8
(step3)重新打开csv文件即可看到正常
'''
三、测试
3.1 测试用PDF
- 2018下半年软考初级程序员下午真题.pdf(试题非原试卷,资源来自“希赛网”,以下简称《软考》)
- 计算机专用英语词汇1500词.pdf(以下简称《词汇》)
- 数据结构电子版pdf(严蔚敏版).pdf(以下简称《数据结构》)
3.2 测试关键词
关键词 | 《软考》是否含有 | 《词汇》是否含有 | 《数据结构》是否含有 |
---|---|---|---|
程序 | 含有 | 含有 | 含有 |
答题纸 | 含有 | 不含有 | 不含有 |
选择 | 不含有 | 含有 | 含有 |
数据元素是数据的基本单位 | 不含有 | 不含有 | 含有 |
3.3 测试结果
首先输入关键词:
运行中:
运行结果:
可以看到,这张表格展示了哪些文件中含有指定的关键词。其中, “程序”关键词在三个测试文件中都存在, “答题纸”关键词仅在《软考》pdf中存在, “选择” 关键词在《数据结构》和《词汇》中存在, “数据元素是数据的基本单位” 仅在《数据结构》pdf中存在,与真实情况一致。
【Python】找到含有指定关键词的PDF相关推荐
- python提取excel指定关键词的行数据
系列文章目录 文章目录 系列文章目录 前言 一.需求描述 1.图片展示 2.提取方法 二.python提取第二版 1.图片展示 1.提取方法 总结 前言 一.需求描述 1.图片展示 从如图所示的数据中 ...
- 知乎zhihu:Python爬取某个问题下所有含有给定关键词的回答
原文地址及源码下载: xiaoxu 在浏览知乎问题过程中,为了通过关键字快速定位到自己想要的回答,写了这个爬虫程序.可以根据问题ID和关键词组合,保存所有含有关键词的回答. 其中,必须含 ...
- Python 利用 cookie 模拟登录,爬取指定关键词的淘宝商品信息
Python 利用 cookie 模拟登录,爬取指定关键词的淘宝商品信息-Selenium 1. 本文目标 由于淘宝网站的不断更新,以前的爬取方法都无法重现,必须需要登录淘宝网站才可以进行搜索商品.所 ...
- python实现文件搜索_python实现搜索指定目录下文件及文件内搜索指定关键词的方法...
本文实例讲述了python实现搜索指定目录下文件及文件内搜索指定关键词的方法.分享给大家供大家参考.具体实现方法如下: #!/usr/bin/python -O # -*- coding: UTF-8 ...
- Python查找文件夹中含有指定关键字的文件
查找文件夹中含有指定关键字的文件,并将该文件复制到另一个文件夹中 ''' 查找文件夹中含有指定关键字的文件,并将该文件复制到另一个文件夹中 ''' import os import shutildef ...
- python处理PDF-通过关键词定位-截取PDF中的图表
代码来源:python处理PDF-通过关键词定位-截取PDF中的图表 最近需要对pdf做一些处理,在这篇文章的基础上进行了修改. 运行时出现一些报错: AttributeError: 'Matrix' ...
- 如何用Python批量提取PPT中含有某关键词的一页,并将这些PPT合并
前提:我有一堆PPT文件:1.pptx.2.pptx.3.pptx......每个文件中都含有若干张幻灯片,这若干张幻灯片中都有一张含有某个关键词的一页,例如含有"月分析",(我就 ...
- (九)python网络爬虫(理论+实战)——爬虫实战:指定关键词的百度新闻爬取
目录 4.5 动手写网络爬虫--指定关键词的百度新闻爬取(实战) 序言 本人从事爬虫相关工作已8年以上,从一个小白到能够熟练使用爬虫,中间也走了些弯路,希望以自身的学习经历,让大家能够轻而易举的,快速 ...
- python批量pdf转word,python批量实现Word文件转换为PDF文件
本文为大家分享了python批量转换Word文件为PDF文件的具体方法,供大家参考,具体内容如下 1.目的 通过万能的Python把一个目录下的所有Word文件转换为PDF文件. 2.遍历目录 作者总 ...
最新文章
- Nginx 性能调优实战
- 微生物组数据揭示中国稻谷产毒真菌分布及仓储动态变化
- [bat批处理文件] 压缩备份
- poj 1011 Sticks 搜索
- Tornado 使用手册(一)---------- 简单的tornado配置
- 洛谷-P1160 队列安排
- 探索比特币源码7-哈希
- [设计原则] 为模块设计初始化和终止化函数
- GARFIELD@12-06-2004
- stm32开发板调试问题记录----去除flash读保护以及debug进不去main.c的问题
- 中柏平板bios对照表_BIOS详解及中英文对照表
- python实现微信机器人 + 淘宝客自动领券(二)
- 《IT项目管理》(郭宁编著) 课后习题答案
- 关于机器翻译,看这一篇就够了
- 告别平淡(平庸)从做难事儿开始
- vimdiff及vim split
- vim删除奇数行_如何用vim删除特定的偶数行?
- 看了多篇2019年的面经后的个人总结
- Python——循环
- 金融界|IDC发布全球金融科技排行,神州信息位居中国上榜企业第一