批量文件分析器:使用Python从PPT和PDF中提取文本

Python 3.6 中使用pdfminer解析pdf文件 所使用python环境为最新的3.6版本一、安装pdfminer模块 安装anaconda后,直接可以通过pip安装pip install pdfminer3k 如上图所示安装成功。二、在IDE中进行编码#!/usr/bin/env python # encoding: utf-8""" @author: wugang @software: PyCharm @file: prase_pdf.py 阅读详情

批量文件分析器:从PPT和PDF中提取文本 📰🔍

你好,小伙伴们!今天我们来聊聊如何批量处理和分析PDF与PPT文件内容。我们会使用一个Python脚本,帮你提取文件的文本内容。此工具特别适合需要处理大量文档的朋友,例如学生、研究人员,甚至是职场达人。让我们开始吧!💡

依赖工具

在这个项目中,我们使用了几个重要的Python库:

  • requests: 用于下载在线文件。
  • Pathlib: 简单优雅地处理路径。
  • python-pptx: 从PPT文件中提取文本。
  • PyPDFLoader: 用于解析PDF文件内容。

先确保在你的环境中安装了这些库:

pip install requests python-pptx langchain_community

代码分解

以下是我们的核心代码:

import requests
from pathlib import Path
from typing import List, Tuple
from urllib.parse import urlparse
from pptx import Presentation
from langchain_community.document_loaders import PyPDFLoader
import os

class BatchAnalyzer:
    def _extract_content(self, file_path: str) -> Tuple[str, List[str]]:
        """统一内容提取方法"""
        ext = Path(file_path).suffix.lower()
        text = ""
        images = []

        try:
            # 处理PPT文件
            if ext == '.pptx':
                prs = Presentation(file_path)
                text_contents = []
                for slide in prs.slides:
                    for shape in slide.shapes:
                        if hasattr(shape, "text"):
                            text_contents.append(shape.text)
                text = "\n".join(text_contents)

            # 处理PDF文件
            elif ext == '.pdf':
                text = "\n".join([p.page_content for p in PyPDFLoader(file_path).load()])

            return text, images

        except Exception as e:
            print(f"❌ 内容提取失败 {file_path}: {str(e)}")
            return "", []

    def analyze(self, sources: List[str], prompt: str) -> dict:
        """批量分析入口"""
        combined_text = []
        all_images = []

        for source in sources:
            print(f"🔍 处理输入源: {source}")

            if urlparse(source).scheme in ('http', 'https'):
                file_path = self._download_file(source)
            else:
                file_path = source if os.path.exists(source) else None

            if not file_path:
                print(f"⏭️ 跳过无效源: {source}")
                continue

            text, images = self._extract_content(file_path)
            if text:
                combined_text.append(text)
            all_images.extend(images)

        content = [{"type": "text", "text": f"{prompt}\n\n{' '.join(combined_text)}"}]

        return content

核心组件

  1. 内容提取:

    • PDF 和 PPTX文件的文本内容提取分别由 PyPDFLoader 和 python-pptx处理。我们在_extract_content方法中对文件类型进行判断,并调用相应函数。
  2. 处理输入源:

    • 支持本地文件和在线资源的处理。对于在线文件,我们下载文件后再进行解析。
  3. 分析方法:

    • analyze方法接收文件路径列表和提示词并返回提取的文本信息。最终的输出格式是字典形式。

使用说明

将代码复制到一个Python文件中,可以自己进一步扩展函数功能。然后在文件末尾通过一个简单的示例进行测试:

if __name__ == "__main__":
    analyzer = BatchAnalyzer()

    # 输入源配置(支持混合来源)
    input_sources = [
        "te_page_001.pdf",
    ]

    # 执行分析
    result = analyzer.analyze(
        sources=input_sources,
        prompt="内容如下:"
    )

    print("\n✅ 分析结果:")
    print(result)

确保你的工作目录中有正确的文件路径,然后运行脚本,即可获得分析结果。是不是很简单方便?😊

总结

这个批量分析器为需要快速批量提取文档内容的用户提供了极大的便利。无论是项目材料,还是分析报告,这个工具都能派上用场。如果你对此有任何想法或问题,欢迎在评论区留言讨论!欢迎尝试并与我们分享你的经验与成果!🚀

使用Python解析PowerPoint:从文件加载到智能处理 本文介绍了如何使用Python处理PowerPoint文件,包括基础加载和高级解析。LangChain 文档Azure AI 文档。 阅读详情

相关推荐

使用Python快速提取PPT中的文本内容

本文介绍了如何使用Python提取幻灯片中的文本内容,包括提取幻灯片文本、备注文本以及批注文本。

Eiceblue的专栏 4986

Python使用textract模块提取处理多个文件格式的文本

是一个用于提取文本内容的 Python 库,它可以处理多种文件格式,包括 PDF、DOC、DOCX、PPT、PPTX、XLS、XLSX、ODT、ODS、ODP、RTF、EPUB 等。支持多种文件类型,包括 PDF、DOC、DOCX、PPT、PPTX、XLS、XLSX、ODT、ODS、ODP、RTF、EPUB 等。对不同文件类型使用不同的底层库,因此你无需担心每种格式的细节,库提供了一个统一的接口。注意,如果系统上未安装所需的外部工具(例如 PDF 的。替换为实际要处理的文件路径。函数将返回提取的文本内容。

Pandas120的博客 1439

使用Python开发PPT文本提取工具

用于创建图形用户界面python-pptx - 用于处理PowerPoint文档Python内置的os模块 - 用于文件路径处理。

Winfredzhang的博客 1487

【最新实用版】Python批量将pdf文本提取并存储到txt文件中

#注意:笔者在2021/11/11当天调试过这个代码是可用的,由于pdfminer版本的更新,网络上大多数的语法没有更新,我也是找了好久的文章才修正了我的代码,仅供学习参考。 1、把pdf文件移动到本代码文件的同一个目录下,笔者是在pycharm里面运行的项目,下图中的x1文件夹存储了我需要转换成文本文件的所有pdf文件。然后要在此目录下创建一个存放转换后的txt文件的文件夹,如图中的txt文件夹。 2、编写代码 (1)导入所需库 # coding:utf-8 import ...

sucka136的博客 1万+

使用Python对PDF文件进行词频统计分析并保存到CSV文件中

PDF转TXT文件要安装的库 pdfminer3k 分词处理要安装的库 jieba # -*- coding:utf-8 import sys import importlib importlib.reload(sys) from pdfminer.pdfparser import PDFParser,PDFDocument from pdfminer.pdfinterp impo...

HPUZJH 1万+

Python实现PDF转换为TXT

文章目录一、环境配置二、代码实现三、代码实现结果 一、环境配置 在实现转换之前需要我们配置好相关环境配置: 如果您是Python3.X版本的话,需要安装pdfminer.six 第三方库 pip install pdfminer.six 如果您是Python2.X版本的话,需要安装pdfminer.six 第三方库 pip install pdfminer3k 方法一:如果您有pycharm这个软件,那么我们的环境配置就十分简单了 step1:点开【文件】----->选择【设置选项】 step2

qq_50589028的博客 8312

Python 第三方模块之 PDFMiner(pdf信息提取)

PDFMiner简介 pdf提取目前的解决方案大致只有pyPDF和PDFMiner。据说PDFMiner更适合文本的解析,首先说明的是解析PDF是非常蛋疼的事,即使是PDFMiner对于格式不工整的PDF解析效果也不怎么样,所以连PDFMiner的开发者都吐槽PDF is evil. 不过这些并不重要。 PDFMiner是一个可以从PDF文档中提取信息的工具。与其他PDF相关的工具不同,它注重的完全是获取和分析文本数据。PDFMiner允许你获取某一页中文本的准确位置和一些诸如字体、行数的信息。它包括一

fenglepeng的博客 3万+

python PDFMiner 处理pdf,保存文本及图片

前言 网上的资料意外地少,尤其是图片的处理,基本上都是官方文档,整了半天,记录一下。 资料 先放一下官方文档及翻译,建议看看官方文档。 官方文档:https://euske.github.io/pdfminer/programming.html 翻译:https://blog.youkuaiyun.com/robolinux/article/details/43318229 安装 我是python3,一开始装了一个pdfminer,装了一个pdfminer3k,但是使用时报错: ImportErr..

兰兰的博客 4376

[312]python提取pdf文本内容

安装: pip install pdfminer 解析pdf文件用到的类: PDFParser:从一个文件中获取数据 PDFDocument:保存获取的数据,和PDFParser是相互关联的 PDFPageInterpreter处理页面内容 PDFDevice将其翻译成你需要的格式 PDFResourceManager用于存储共享资源,如字体或图像...

周小董 5万+

使用python读取pdf文件转换成txt文件

""" pip install pdfminer3k """ import sys import importlib importlib.reload(sys) from pdfminer.pdfparser import PDFParser,PDFDocument from pdfminer.pdfinterp import PDFResourceManager, PDFPageInterp...

liuhaiguang2012的博客 2882

如何一键拷贝PPT中的所有文字?

如何一键拷贝PPT中的所有文字?

dvlinker的技术专栏 5588

python解析pdf(转化pdf为文本)欢迎提问

虽然下面的代码是在别地学的,但是我也是被挖坑了好多次 # -*- coding: utf-8 -*- from pdfminer.pdfparser import PDFParser from pdfminer.pdfdocument import PDFDocument from pdfminer.pdfpage import PDFPage from pdfminer.pdfpage i...

优快云 3569

SwissADME:一款在线预测小分子药动学性质的工具

是一个免费的在线工具,由瑞士生物信息学研究所(SIB)开发,用于预测和分析小分子的药物相似性、理化性质、药代动力学特性以及合成可行性等。它是药物设计和开发中常用的工具之一,帮助研究人员快速评估化合物的成药潜力。

药研猿的博客 5019

python从PDF文件中提取文本和文本坐标

python从PDF文件中提取文本和文本坐标

weixin_43815222的博客 2415

基于Matlab/Simulink的三相并网逆变器dq阻抗扫频仿真与理论建模实践指南

本文详细介绍了基于Matlab/Simulink的三相并网逆变器dq阻抗扫频仿真与理论建模实践方法。通过搭建仿真模型、设计扰动注入策略和FFT分析,精确提取阻抗特性,有效预测系统稳定性,为新能源并网系统设计提供可靠指导。

gold的博客 775

从MATLAB代码入手:手把手教你复现OTFS调制解调核心模块(附完整函数解析)

本文详细解析了OTFS调制解调技术在MATLAB中的实现方法,包括核心模块如ISFFT变换、海森堡变换及MP检测算法的代码实现。通过完整的函数解析和性能验证框架,帮助通信工程师快速掌握这一前沿技术,提升在高速移动场景下的通信系统设计能力。

weixin_42568801的博客 319

Python_读取PDF文件内容

涉及到一些PDF文件中的读取,特地去网上简单学习一下并记录下来 大神链接: https://www.cnblogs.com/wj-1314/p/9429816.html 自己简单代码的分享以边自己后边用到 from pdfminer.converter import PDFPageAggregator from pdfminer.pdfparser import PDFParser, PDFDo...

后青春诗ing 7946

Anaconda/Miniconda的删除和安装

要在 MacBook 上删除 Anaconda 或 Miniconda,并重新安装它,您可以按照以下步骤进行操作。

qq_27390023的博客 3026

python3利用pdfminer3k提取PDF中的文本信息

以下内容要求的版本,python3、pdfminer3k 1、安装组件 pip install pdfminer3k 2、运行代码 from pdfminer.pdfparser import PDFParser,PDFDocument from pdfminer.pdfinterp import PDFResourceManager, PDFPageInterpreter from pdfmi...

玩火的稻草人的博客 2534

vue2/3 - 详细实现内网使用离线百度地图功能,百度地图如何离线加载详细教程(内网部署及使用),在vue中无需网络离线使用百度地图相关功能,提供最新完整的瓦片资源下载及相关工具(示例代码,一键复制

vue,vue2,vue3,百度地图,离线使用百度地图,百度地图瓦片官方下载,vue内网使用百度地图离线无网络,断网情况下使用百度地图,vue离线百度地图教程,如何实现内网部署百度地图,无需联网离线使用,vue+ts实现离线百度地图 内网离线百度地图,如何在百度地图Vue项目中下载离线地图,百度离线地图加载不出来,百度地图离线使用不显示怎么办,怎么解决vue内网使用离线百度地图加载失败问题,vue实现离线地图+百度瓦片,vue引入百度离线地图,vue项目如何使用离线百度地图和自定义地图样式,百度离线地图的下

✅ 精选推荐文章 1万+

EM的理论与实践(基础篇)

EM理论与实践

m0_61544122的博客 2379

python英文文本分析和提取_python如何提取英语pdf内容并翻译

本文实例为大家分享了python提取英语pdf内容并翻译的具体代码,供大家参考,具体内容如下前期准备工作:翻译接口: 调用的是百度翻译的api(注册后,每个月有2百万的免费翻译字符数。)pdfminer3k: pdfminer3k是pdfminer的Python 3端口。 PDFMiner是一种从PDF文档中提取信息的工具。 与其他PDF相关工具不同,它完全专注于获取和分析文本数据。 PDFMin...

weixin_39789094的博客 481

Altium Designer(AD24/25)导出DXF或DWG结构文件的方法

DXF(Drawing Exchange Format)和DWG(Drawing)是两种常见的CAD(计算机辅助设计)文件格式,常用于结构和硬件之间的沟通。本文介绍Altium Designer(AD24/25)导出DXF或DWG结构文件的方法。

fydar的博客 2323

Python提取PDF中的文字和图片

一,使用Python提取PDF中的文字 # 只能处理包含文本的PDF文件 #coding=utf-8 import sys import importlib importlib.reload(sys) from pdfminer.pdfparser import PDFParser,PDFDocument from pdfminer.pdfinterp import PDFResourceManager,PDFPageInterpreter from pdfminer.converter import PD

西门一刀的博客 3892

免费教你快速学会分析运算放大器电路(保证学会)

本文旨在学习如何快速简单地对运算放大器进行分析

一名热爱技术的工程师的博客。分享技术干货,记录美好生活。永远相信美好的事情即将发生。 1万+

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

Python批量提取文档中的电话号码和邮箱

当你想批量提取文档(如简历)中的电话和邮箱,可以参考以下代码: import os from win32com import client as wc import glob from shutil import copyfile import os.path,re from pdfminer.pdfinterp import PDFResourceManager, PDFPageInterpreter from pdfminer.converter import PDFPageAggregator

泡在妞里的Feel 4284

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

上一篇: 使用Python进行股票预测
下一篇: 使用Python轻松拆分PDF,每页独立成文件
AI航海家(Ethan)
博客等级 码龄7年 477粉丝 91原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值