哈喽大家好,今天来给大家介绍Python-PDF文本提取技巧
PDF文件具有跨平台的特点,可以在不同的操作系统和设备上保持一致的显示效果。但是,PDF文件也有一些缺点,比如不易编辑、复制和搜索。如果我们想要从PDF文件中提取文本内容,该怎么办呢?
在本教程中,我们将介绍如何使用Python中的PyPDF2
库来提取PDF文件中的内嵌文字内容。PyPDF2
是一个纯Python的库,可以读取、分割、合并、裁剪和转换PDF文件。它不需要安装任何其他的依赖库,也不需要调用外部的程序或服务。
安装PyPDF2
库
要使用PyPDF2
库,我们首先需要安装它。我们可以使用pip
命令来安装,如下所示:
pip install PyPDF2
如果安装成功,我们可以在Python中导入PyPDF2
模块,如下所示:
import PyPDF2
读取PDF文件
要从PDF文件中提取文本内容,我们首先需要读取PDF文件。我们可以使用PyPDF2.PdfReader
类来创建一个PDF文件的读取对象,然后传入一个文件对象或一个文件路径作为参数。例如,假设我们有一个名为sample.pdf
的PDF文件,我们可以用以下代码来读取它:
# 通过文件对象来读取
with open("sample.pdf", "rb") as f: # 以二进制模式打开文件
reader = PyPDF2.PdfReader(f) # 创建一个PdfFileReader对象
# 通过文件路径来读取
reader = PyPDF2.PdfReader("sample.pdf") # 创建一个PdfFileReader对象
注意,我们必须以二进制模式(“rb”)来打开PDF文件,否则会出现错误。
获取PDF文件的基本信息
在读取了PDF文件之后,我们可以使用PdfReader
对象的一些属性和方法来获取PDF文件的基本信息,例如页数、作者、标题等。例如:
# 获取页数
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()
方法来获取页面中的文本内容。例如:
# 获取第一页的页面对象
page1 = reader.pages[0]# 传入一个整数作为参数,表示页码(从0开始)
# 提取第一页的文本内容
text1 = page1.extract_text() # 返回一个字符串,表示页面中的文本内容
# 打印第一页的文本内容
print(text1)
注意,extract_text()
方法只能提取内嵌文字内容,不能提取图像或其他元素。另外,提取出来的文本内容可能不完全符合原始格式,可能存在换行、空格、缺失等问题。
提取多页文本内容
要从多页中提取文本内容,我们可以使用一个循环来遍历PdfReader
对象的每一页,然后使用extract_text()
方法来获取每一页的文本内容,并将它们拼接成一个完整的字符串。例如:
# 创建一个空字符串,用于存储所有页面的文本内容
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()
方法来写入提取的文本内容。例如:
# 创建一个名为output.txt的文本文件对象,以写入模式打开
with open("output.txt", "w", encoding="utf-8") as f: # 指定编码为utf-8,避免乱码
# 将提取的文本内容写入到文件中
f.write(text)
注意,我们需要指定编码为utf-8,以避免出现乱码。
如下是:sample.pdf和output.txt文件的部分截图
总结
在本教程中,我们介绍了如何使用Python中的PyPDF2
库来提取PDF文件中的内嵌文字内容。我们首先安装了PyPDF2
库,并导入了PyPDF2
模块。然后,我们使用PyPDF2.PdfReader
类来读取PDF文件,并获取了PDF文件的基本信息。接着,我们使用pages
和extract_text()
方法来提取单页或多页的文本内容,并将它们保存到一个文本文件中。通过这些操作,我们可以实现Python自动化办公的一个功能,即从PDF文件中提取文本内容。
关于Python学习指南
学好 Python 不论是就业还是做副业赚钱都不错,但要学会 Python 还是要有一个学习规划。最后给大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!
包括:Python激活码+安装包、Python web开发,Python爬虫,Python数据分析,人工智能、自动化办公等学习教程。带你从零基础系统性的学好Python!
👉Python所有方向的学习路线👈
Python所有方向路线就是把Python常用的技术点做整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。(全套教程文末领取)
👉Python学习视频600合集👈
观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。
温馨提示:篇幅有限,已打包文件夹,获取方式在:文末
👉Python70个实战练手案例&源码👈
光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。
👉Python大厂面试资料👈
我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。
👉Python副业兼职路线&方法👈
学好 Python 不论是就业还是做副业赚钱都不错,但要学会兼职接单还是要有一个学习规划。
👉 这份完整版的Python全套学习资料已经上传,朋友们如果需要可以扫描下方CSDN官方认证二维码或者点击链接免费领取【保证100%免费
】
![](https://i-blog.csdnimg.cn/blog_migrate/bcd9de30d1e48d01ba62fd08ad6e491d.png)