当前位置:首页 > 科技  > 软件

Python自动化办公实战:PDF文本提取技巧

来源: 责编: 时间:2023-11-21 09:39:17 391观看
导读PDF文件具有跨平台的特点,可以在不同的操作系统和设备上保持一致的显示效果。但是,PDF文件也有一些缺点,比如不易编辑、复制和搜索。如果我们想要从PDF文件中提取文本内容,该怎么办呢?在本教程中,我们将介绍如何使用Python

PDF文件具有跨平台的特点,可以在不同的操作系统和设备上保持一致的显示效果。但是,PDF文件也有一些缺点,比如不易编辑、复制和搜索。如果我们想要从PDF文件中提取文本内容,该怎么办呢?Uzh28资讯网——每日最新资讯28at.com

在本教程中,我们将介绍如何使用Python中的PyPDF2库来提取PDF文件中的内嵌文字内容。PyPDF2是一个纯Python的库,可以读取、分割、合并、裁剪和转换PDF文件。它不需要安装任何其他的依赖库,也不需要调用外部的程序或服务。Uzh28资讯网——每日最新资讯28at.com

Uzh28资讯网——每日最新资讯28at.com

安装PyPDF2库

要使用PyPDF2库,我们首先需要安装它。我们可以使用pip命令来安装,如下所示:Uzh28资讯网——每日最新资讯28at.com

pip install PyPDF2

如果安装成功,我们可以在Python中导入PyPDF2模块,如下所示:Uzh28资讯网——每日最新资讯28at.com

import PyPDF2

读取PDF文件

要从PDF文件中提取文本内容,我们首先需要读取PDF文件。我们可以使用PyPDF2.PdfReader类来创建一个PDF文件的读取对象,然后传入一个文件对象或一个文件路径作为参数。例如,假设我们有一个名为sample.pdf的PDF文件,我们可以用以下代码来读取它:Uzh28资讯网——每日最新资讯28at.com

# 通过文件对象来读取with open("sample.pdf", "rb") as f: # 以二进制模式打开文件    reader = PyPDF2.PdfReader(f) # 创建一个PdfFileReader对象# 通过文件路径来读取reader = PyPDF2.PdfReader("sample.pdf") # 创建一个PdfFileReader对象

注意,我们必须以二进制模式("rb")来打开PDF文件,否则会出现错误。Uzh28资讯网——每日最新资讯28at.com

获取PDF文件的基本信息

在读取了PDF文件之后,我们可以使用PdfReader对象的一些属性和方法来获取PDF文件的基本信息,例如页数、作者、标题等。例如:Uzh28资讯网——每日最新资讯28at.com

# 获取页数num_pages = len(reader.pages) # 返回一个整数,表示PDF文件的总页数print(f"该PDF文件共有{num_pages}页")# 获取作者author = reader.metadata.author # 返回一个字符串,表示PDF文件的作者信息print(f"该PDF文件的作者是{author}")# 获取标题title = reader.metadata.title # 返回一个字符串,表示PDF文件的标题信息print(f"该PDF文件的标题是{title}")

提取单页文本内容

要从单页中提取文本内容,我们可以使用PdfReader对象的pages来获取指定页码的页面对象(PyPDF2.pdf.PageObject类),然后使用页面对象的extract_text()方法来获取页面中的文本内容。例如:Uzh28资讯网——每日最新资讯28at.com

# 获取第一页的页面对象page1 = reader.pages[0]# 传入一个整数作为参数,表示页码(从0开始)# 提取第一页的文本内容text1 = page1.extract_text() # 返回一个字符串,表示页面中的文本内容# 打印第一页的文本内容print(text1)

注意,extract_text()方法只能提取内嵌文字内容,不能提取图像或其他元素。另外,提取出来的文本内容可能不完全符合原始格式,可能存在换行、空格、缺失等问题。Uzh28资讯网——每日最新资讯28at.com

提取多页文本内容

要从多页中提取文本内容,我们可以使用一个循环来遍历PdfReader对象的每一页,然后使用extract_text()方法来获取每一页的文本内容,并将它们拼接成一个完整的字符串。例如:Uzh28资讯网——每日最新资讯28at.com

# 创建一个空字符串,用于存储所有页面的文本内容text = ""# 遍历每一页for i in range(num_pages):    # 获取当前页的页面对象    page = reader.pages[i]    # 提取当前页的文本内容    page_text = page.extract_text()    # 将当前页的文本内容添加到总字符串中    text += page_text# 打印所有页面的文本内容print(text)

保存提取的文本内容

提取了PDF文件中的文本内容之后,我们可以将它保存到一个文本文件中,以便后续的处理或分析。我们可以使用Python的内置函数open()来创建一个文本文件对象,然后使用write()方法来写入提取的文本内容。例如:Uzh28资讯网——每日最新资讯28at.com

# 创建一个名为output.txt的文本文件对象,以写入模式打开with open("output.txt", "w", encoding="utf-8") as f: # 指定编码为utf-8,避免乱码    # 将提取的文本内容写入到文件中    f.write(text)

注意,我们需要指定编码为utf-8,以避免出现乱码。Uzh28资讯网——每日最新资讯28at.com

如下是:sample.pdf和output.txt文件的部分截图Uzh28资讯网——每日最新资讯28at.com

Uzh28资讯网——每日最新资讯28at.com

总结

在本教程中,我们介绍了如何使用Python中的PyPDF2库来提取PDF文件中的内嵌文字内容。我们首先安装了PyPDF2库,并导入了PyPDF2模块。然后,我们使用PyPDF2.PdfReader类来读取PDF文件,并获取了PDF文件的基本信息。接着,我们使用pages和extract_text()方法来提取单页或多页的文本内容,并将它们保存到一个文本文件中。通过这些操作,我们可以实现Python自动化办公的一个功能,即从PDF文件中提取文本内容。Uzh28资讯网——每日最新资讯28at.com

本文链接:http://www.28at.com/showinfo-26-32016-0.htmlPython自动化办公实战:PDF文本提取技巧

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。邮件:2376512515@qq.com

上一篇: 探索 C++20 的新领域:深入理解 static 关键字和核心语言特性测试宏

下一篇: 17个酷爆了的开源Flutter应用程序以及一些Flutter学习资源

标签:
  • 热门焦点
  • 7月安卓手机性价比榜:努比亚+红魔两款新机入榜

    7月登场的新机有努比亚Z50S Pro和红魔8S Pro,除了三星之外目前唯二的两款搭载超频版骁龙8Gen2处理器的产品,而且努比亚和红魔也一贯有着不错的性价比,所以在本次的性价比榜单
  • 服务存储设计模式:Cache-Aside模式

    Cache-Aside模式一种常用的缓存方式,通常是把数据从主存储加载到KV缓存中,加速后续的访问。在存在重复度的场景,Cache-Aside可以提升服务性能,降低底层存储的压力,缺点是缓存和底
  • 多线程开发带来的问题与解决方法

    使用多线程主要会带来以下几个问题:(一)线程安全问题  线程安全问题指的是在某一线程从开始访问到结束访问某一数据期间,该数据被其他的线程所修改,那么对于当前线程而言,该线程
  • 重估百度丨“晚熟”的百度云,能等到春天吗?

    ©自象限原创作者|程心排版|王喻可2016年7月13日,百度云计算战略发布会在北京举行,宣告着百度智能云的正式启程。彼时的会场座无虚席,甚至排队排到了门外,在场的所有人几乎都
  • 本地生活这块肥肉,拼多多也想吃一口

    出品/壹览商业 作者/李彦编辑/木鱼拼多多也看上本地生活这块蛋糕了。近期,拼多多在App首页“充值中心”入口上线了本机生活界面。壹览商业发现,该界面目前主要
  • 一条抖音4亿人围观 ! 这家MCN比无忧传媒还野

    作者:Hiu 来源:互联网品牌官01 擦边少女空降热搜,幕后推手曝光被网友誉为“纯欲天花板”的女网红井川里予,近期因为一组哥特风照片登上热搜,引发了一场互联网世界关于
  • 年轻人的“职场羞耻感”,无处不在

    作者:冯晓亭 陶 淘 李 欣 张 琳 马舒叶来源:燃次元“人在职场,应该选择什么样的着装?”近日,在网络上,一个与着装相关的帖子引发关注,在该帖子里,一位在高级写字楼亚洲金
  • Windows 11发布,微软一改往常对老机型开放的态度

    距离 Windows 11 发布已经过去一周,在过去一周里,很多数码爱好者围绕其对 Android 应用的支持、对老机型的升级问题展开了激烈讨论。与以往不同的是,在这次大
  • 亲历马斯克血洗Twitter,硅谷的苦日子在后头

    文/刘哲铭  编辑/李薇  马斯克再次挥下裁员大刀。  美国时间11月14日,Twitter约4400名外包员工遭解雇,此次被解雇的员工的主要工作为内容审核等。此前,T
Top