当前位置: 首页 > article >正文

【Python 常用脚本及命令系列 7 -- pdf 文件字符搜索 python脚本实现】


==> 请阅读嵌入式及芯片开发学必备专栏】<==


文章目录

    • pdf 文件字符搜索 python脚本实现
      • 说明

pdf 文件字符搜索 python脚本实现

要实现一个 Python 脚本来在指定目录中搜索 PDF 文件中的关键字,可以使用 PyPDF2 库来读取 PDF 文本,并结合 os 库来遍历文件系统。以下是一个简单的脚本示例:

import os
import PyPDF2
def search_keyword_in_pdfs(directory, keyword):
    # 遍历指定目录及子目录下的所有文件
    for root, _, files in os.walk(directory):
        for file in files:
            if file.endswith('.pdf'):
                file_path = os.path.join(root, file)
                try:
                    # 打开 PDF 文件
                    with open(file_path, 'rb') as pdf_file:
                        pdf_reader = PyPDF2.PdfReader(pdf_file)
                        # 遍历每一页并搜索关键字
                        for page in pdf_reader.pages:
                            text = page.extract_text()
                            if text and keyword.lower() in text.lower():
                                print(f"Keyword '{keyword}' found in: {file_path}")
                                break  # 如果找到关键字,跳出当前文件的搜索
                except Exception as e:
                    print(f"Error reading {file_path}: {e}")
# 指定目录和关键字
search_directory = 'd:/work/'
search_keyword = 'hello'
# 调用搜索函数
search_keyword_in_pdfs(search_directory, search_keyword)

说明

  1. 导入库
    • os:用于遍历目录结构。
    • PyPDF2:用于处理 PDF 文件。
  2. search_keyword_in_pdfs 函数
    • 使用 os.walk() 递归遍历指定目录及其子目录。
    • 过滤出所有扩展名为 .pdf 的文件。
    • 打开每个 PDF 文件,并使用 PyPDF2 读取每一页的文本。
    • 搜索关键字(大小写不敏感),如果找到则打印文件路径。
  3. 注意事项
    • 确保已安装 PyPDF2 库,可以通过 pip install PyPDF2 安装。
    • 脚本假定目录路径为 Windows 风格,请根据需要调整路径。
    • PyPDF2 可能对某些复杂的 PDF 格式解析不完全,遇到问题时需要进行错误处理(如上示例中的异常处理)。

请根据具体需要调整脚本,比如处理特殊字符或不同的编码格式。


http://www.kler.cn/news/363776.html

相关文章:

  • APP综合应用之业务场景脚本测试任务(5)--多重继承与总结
  • 从零开始的LeetCode刷题日记:45.跳跃游戏 II
  • 【题解】—— LeetCode一周小结41
  • Android compose 重建流程1
  • 解锁PDF权限密码
  • 探寻医疗行业人力资源管理系统优选方案
  • element 按钮变形 el-button样式异常
  • Html/Vue浏览器下载并重命名文件
  • Effective C++ | 读书笔记 (一)
  • 安全见闻(3)——开阔眼界,不做井底之蛙
  • 从0到1学习node.js(path模块以及HTTP协议)
  • Rust编写硬件抽象层(HAL)服务
  • 世优科技“AI+空间计算”推动消费行业向智能化升级
  • Mycat 详细介绍及入门实战,解决数据库性能问题
  • ESP32-C3实现非易失变量(Arduino IDE )
  • HuggingFace学习与使用①:核心组件、如何使用?
  • 怎么重写equals()方法和hashCode()方法
  • 代码随想录:206. 反转链表
  • vue3移动端可同时上传照片和视频的组件
  • 项目分析:自然语言处理(语言情感分析)
  • 释放双手,让微信聊天更智能 —— 单机版个人微信智能客服软件介绍
  • Redis学习笔记(三)--Redis客户端
  • SpringBoot技术的车辆管理流程自动化
  • 基于SSM+微信小程序的酒店管理系统1
  • Java项目-基于springboot框架的自习室预订系统项目实战(附源码+文档)
  • 如何高效清除PostgreSQL数据库缓存