Python实现查询一个文件中的pdf文件中的关键字

要求,查询一个文件中的pdf文件中的关键字,输出关键字所在PDF文件的文件名及对应的页数。

import os
import PyPDF2def search_pdf_files(folder_path, keywords):# 初始化结果字典,以关键字为键,值为包含关键字的页面和文件名列表results = {keyword: [] for keyword in keywords}# 遍历指定文件夹下的所有文件for root, dirs, files in os.walk(folder_path):for filename in files:if filename.endswith(".pdf"):# 构建PDF文件的完整路径pdf_path = os.path.join(root, filename)# 打开PDF文件with open(pdf_path, "rb") as pdf_file:pdf_reader = PyPDF2.PdfReader(pdf_file)# 获取PDF的总页数total_pages = len(pdf_reader.pages)# 遍历PDF的每一页for page_num in range(total_pages):# 读取页面内容page = pdf_reader.pages[page_num]page_text = page.extract_text()# 检查所有关键字for keyword in keywords:if keyword in page_text:results[keyword].append({"file_name": filename,"page_number": page_num + 1  # PDF页码从1开始})return results# 示例用法
folder_to_search = r"C:\Users\Administrator\Desktop\2"
search_keywords = ["SVD", "线性回归", "XGBoost", "不存在的关键字"]  # 添加多个关键字,包括不存在的关键字
results = search_pdf_files(folder_to_search, search_keywords)# 打印结果
for keyword, keyword_results in results.items():if keyword_results:print(f"关键字 '{keyword}' 所在的文件及页数:")for result in keyword_results:print(f"文件 '{result['file_name']}' 的第 {result['page_number']} 页")else:print(f"没有找到关键字 '{keyword}'。")print()  # 输出换行以区分不同关键字的结果

 为了方便且高效看论文。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

chrome实用插件分享

colorzilla(网页取色器) 滴管取色 可以自动获取网页上任何像素或区域的颜色,也可以获取浏览器外部的颜色。 显示元素信息 显示元素的信息,如标签名称、类、id、大小等。 拾色器面板 类似Photoshop软件上的那些功能。 颜色历史…

Delft3D水动力与泥沙运动模拟

目录 第一部分 Delft3D水动力模型的基本原理 第二部分 构建Delft3D模型的基本流程 第三部分 构建Delft3D水动力模型的网格 第四部分 Delft3D水动力模型的运行和后处理 第五部分 Delft3D泥沙运动模型 第六部分 Delft3D泥沙运动模型举例与练习 第七部分 Delft3D泥沙模型进…

山西电力市场日前价格预测【2023-09-20】

日前价格预测 预测说明: 如上图所示,预测明日(2023-09-20)山西电力市场全天平均日前电价为334.70元/MWh。其中,最高日前电价为391.75元/MWh,预计出现在19: 15。最低日前电价为277.77元/MWh,预计…

如何使用IP归属地查询API来追踪网络活动

引言 在当今数字化世界中,了解网络活动的源头和位置对于网络安全、市场研究和用户体验至关重要。IP归属地查询API是一种强大的工具,可以帮助您追踪网络活动并获取有关IP地址的重要信息。本文将探讨如何使用IP归属地查询API来追踪网络活动,以…

基于HOG特征提取和GRNN神经网络的人脸表情识别算法matlab仿真,测试使用JAFFE表情数据库

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 1.HOG特征提取 2.GRNN神经网络 3.JAFFE表情数据库 5.算法完整程序工程 1.算法运行效果图预览 2.算法运行软件版本 matlab2022a 3.部分核心程序 .....................................…

HI_NAS linux 记录

dev/root 100% 占用解决记录 通过下面的命令查看各文件夹 大小 sudo du --max-depth1 -h # 统计当前文件夹下各个文件夹的大小显示为M 最终发现Var/log 占用很大空间 发现下面两个 log 占用空间很大,直接 rm-rf 即可 HI NAS python3 记录 # 安装pip3 sudo apt u…

你真的知道GET和POST两种基本请求方法的区别吗?

GET和POST是HTTP请求的两种基本方法,要说它们的区别,接触过WEB开发的人都能说出一二。 最直观的区别就是GET把参数包含在URL中,POST通过request body传递参数。 你可能自己写过无数个GET和POST请求,或者已经看过很多权威网站总结出…

Linux文件管理命令

Linux命令行 命令空格参数(可写可不写)空格文件(可写可不写)ls/opt 根目录下的opt文件夹ls-a 显示所有文件及隐藏文件/optls -l 详细输出文件夹内容 ls -h 输出文件大小(MB...)ls--full-time 完整时间格式输出ls-d 显示文件夹本身信息,不输出内容ls-t 根据最后修改…

怒刷LeetCode的第8天(Java版)

目录 第一题 题目来源 题目内容 解决方法 方法一:双指针和排序 ​编辑第二题 题目来源 题目内容 解决方法 方法一:双指针 方法二:递归 方法三:快慢指针 方法四:栈 第三题 题目来源 题目内容 解决方法…

SSM02

SSM02 此时我们已经做好了登录模块接下来可以做一下学生管理系统的增删改查操作 首先&#xff0c;我们应当有一个登录成功后的主界面 在webapp下新建 1.main.html <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"&…

天选之子C++是如何发展起来的?如何学习C++呢?

天选之子C是如何发展起来的&#xff1f;如何学习C呢? 一、什么是C二、C发展史三、C的重要性3.1 语言的使用广泛度3.2 在工作领域 四、如何学习C4.1 大佬怎么学&#xff1f;4.2 自己怎么学 一、什么是C C语言是结构化和模块化的语言&#xff0c;适合处理较小规模的程序。对于复…

Echarts散点图筛选新玩法dataZoom

目录 前言 一、引入Echarts5.4.3 二、新建index.html 三、绑定Echarts展示元素 四、初始数据绑定 五、option设置 六、效果展示 七、参数说明 总结 前言 如果您在日常的工作当中也会遇到如下场景&#xff0c;需要在线对已经展示出来的图表进行进一步的筛选&#xff0c…

在编译源码的环境下,搭建起Discuz!社区论坛和WordPress博客的LNMP架构

目录 一.编译安装nginx 二.编译安装MySQL 三.编译安装PHP 四.安装论坛 五.安装wordpress博客 六.yum安装LNMP架构&#xff08;简要过程参考&#xff09; 一.编译安装nginx 1&#xff09;关闭防火墙&#xff0c;将安装nginx所需软件包传到/opt目录下 systemctl stop fire…

mysql表的导出和导入

表的导出 mysql 默认对导出的目录有权限限制&#xff0c;也就是说使用命令进行导出的时候&#xff0c;需要指定目录进行操作 show global variables like ‘%secure%’; secure_file_priv 值情况分析&#xff1a; 如果设置为empty&#xff0c;表示不限制文件生成的位置&#x…

Redis 三种特殊的数据类型 - Geospatial地理位置 - Hyperloglog基数统计的算法 - Bitmaps位图(位存储)

目录 Redis 三种特殊的数据类型&#xff1a; Geospatial&#xff1a;地理位置 Geospatial类型常用的命令&#xff1a; GEOADD&#xff1a;添加地理位置 GEOPOS&#xff1a;获取地理位置 GEODIST&#xff1a;返回两个给定位置之间的距离 GEORADIUS&#xff1a;以给定的经纬…

企业电子招投标采购系统——功能模块功能描述+数字化采购管理 采购招投标

功能描述 1、门户管理&#xff1a;所有用户可在门户页面查看所有的公告信息及相关的通知信息。主要板块包含&#xff1a;招标公告、非招标公告、系统通知、政策法规。 2、立项管理&#xff1a;企业用户可对需要采购的项目进行立项申请&#xff0c;并提交审批&#xff0c;查看所…

compose——底部弹窗ModalBottomSheetLayout

底部弹窗ModalBottomSheetLayout ModalBottomSheetLayout 是 Jetpack Compose 中的一个组件&#xff0c;用于创建底部弹窗。它可以在屏幕底部显示一个半透明的背景&#xff0c;并从底部滑出一个内容面板。ModalBottomSheetLayout 包含两个主要部分&#xff1a;背景和内容面板。…

uqrcode+uni-app 微信小程序生成二维码

使用微信小程序需要弹出动态二维码的需求&#xff0c;从插件市场选了一个下载次数较多的组件引入到项目中uqrcode&#xff0c;使用步骤如下&#xff1a; 1、从插件市场下载 插件地址&#xff1a;https://ext.dcloud.net.cn/plugin?id1287&#xff0c;若你是跟我一样是用uni-…

java导出Excel合并列(自定义列根据模板进行导出)附详细代码及注解

【版权所有&#xff0c;文章允许转载&#xff0c;但须以链接方式注明源地址&#xff0c;否则追究法律责任】【创作不易&#xff0c;点个赞就是对我最大的支持】 前言 仅作为学习笔记&#xff0c;供大家参考 总结的不错的话&#xff0c;记得点赞收藏关注哦&#xff01; 这里…

DM/达梦数据库查询或更新某一列中多个字典码对应内容

准备工作&#xff08;建表、插入数据&#xff09; 1、建立表格&#xff1a;学生-学习科目表student_study 注意&#xff1a;科目kemu列内容是字典码&#xff0c;需要更换成对应内容。 CREATE TABLE "TEST"."STUDENT_STUDY" ( "NAME" VARCHAR(2…