Python利用PyPDF2库实现轻松提取PDF文本

 更新时间:2023年09月17日 08:57:27   作者:Python数据开发  
ython中的PyPDF2库是一个非常有用的工具,无论您是需要分析PDF文档中的内容还是需要在文档中搜索特定的信息,PyPDF2都可以帮助您轻松实现这些任务,下面我们就来学习一下如何利用PyPDF2提取PDF文本吧

当需要从PDF文件中提取文本时,Python中的PyPDF2库是一个非常有用的工具。无论您是需要分析PDF文档中的内容还是需要在文档中搜索特定的信息,PyPDF2都可以帮助您轻松实现这些任务。

在本文中,我们将探讨如何使用PyPDF2库提取PDF文件中的文本,并提供一些示例代码来帮助您入门。

安装PyPDF2库

首先,您需要安装PyPDF2库。您可以使用pip来安装它:

pip install PyPDF2

打开PDF文件,并读取内容

让我们从一个简单的示例开始。假设我们有一个名为"sample.pdf"的PDF文件,并且我们想要提取其中的文本内容。

import PyPDF2
# 打开PDF文件
pdf_file = open('YOLOv1.pdf', 'rb')
# 创建一个PDF对象
pdf_reader = PyPDF2.PdfReader(pdf_file)
# 获取PDF文件中的页面数量
num_pages = len(pdf_reader.pages)
# 创建一个空字符串,用于存储提取的文本
text = ""
# 循环遍历每一页并提取文本
for page_num in range(num_pages):
    page = pdf_reader.pages[page_num]
    text += page.extract_text()
# 关闭PDF文件
pdf_file.close()
# 打印提取的文本
print(text)

以上代码将打开名为"YOLOv1.pdf"的PDF文件,遍历每一页并将文本内容提取到一个字符串中。最后,它会打印提取的文本。

提取结果

高级用法

除了基本的文本提取,PyPDF2还提供了其他功能,例如合并多个PDF文件、旋转页面、添加书签等。让我们详细讨论一些高级用法,并提供相应的代码示例。

合并多个PDF文件

有时,您可能需要将多个PDF文件合并成一个文件。PyPDF2允许您执行此操作。

from PyPDF2 import PdfWriter
merger = PdfWriter()
for pdf in ["M:\YOLOv1.pdf", "M:\YOLOv2.pdf"]:
    merger.append(pdf)
merger.write("M:\merged.pdf")
merger.close()

以上代码将打开名为’YOLOv1.pdf’和’YOLOv1.pdf’的两个PDF文件,将它们的内容合并到一个新的PDF文件’merged.pdf’中。

旋转页面

有时,PDF文件中的页面可能需要旋转。使用PyPDF2,您可以旋转页面以适应您的需求。

import PyPDF2
# 打开PDF文件
pdf_file = open('M:\YOLOv1.pdf', 'rb')
# 创建PDF对象
pdf_reader = PyPDF2.PdfReader(pdf_file)
# 创建一个新的PDF对象
pdf_writer = PyPDF2.PdfWriter()
# 旋转第一页90度
page = pdf_reader.pages[0]
page.rotate(90)
pdf_writer.add_page(page)
# 将未旋转的页面添加到新文件中
for page_num in range(1, len(pdf_reader.pages)):
    page = pdf_reader.pages[page_num]
    pdf_writer.add_page(page)
# 创建一个新的PDF文件并保存旋转后的内容
output_pdf = open('M:\YOLOv1-rd.pdf', 'wb')
pdf_writer.write(output_pdf)
# 关闭所有打开的文件
pdf_file.close()
output_pdf.close()

以上代码将打开名为’YOLOv1.pdf’的PDF文件,旋转第一页90度,并将旋转后的页面保存到新的PDF文件’YOLOv1-rd.pdf’中。

添加书签

您还可以使用PyPDF2在PDF文件中添加书签,以便更轻松地导航和查找内容。

以上代码将打开名为’YOLOv1.pdf’的PDF文件,将其内容复制到新的PDF文件’YOLOv1-copy.pdf’中,并在第一页和第六页添加了两个书签。

import PyPDF2
# 打开PDF文件
pdf_file = open('M:\YOLOv1.pdf', 'rb')
# 创建PDF对象
pdf_reader = PyPDF2.PdfReader(pdf_file)
# 创建一个新的PDF对象
pdf_writer = PyPDF2.PdfWriter()
# 循环遍历每一页并将页面添加到新文件中
for page_num in range(len(pdf_reader.pages)):
    page = pdf_reader.pages[page_num]
    pdf_writer.add_page(page)
# 添加书签
pdf_writer.add_bookmark('Chapter 1', 0)  # 在第一页添加一个名为"Chapter 1"的书签
pdf_writer.add_bookmark('Chapter 2', 5)  # 在第六页添加一个名为"Chapter 2"的书签
# 创建一个新的PDF文件并保存带有书签的内容
output_pdf = open('M:\YOLOv1-copy.pdf', 'wb')
pdf_writer.write(output_pdf)
# 关闭所有打开的文件
pdf_file.close()
output_pdf.close()

结论

使用PyPDF2库,您可以轻松地从PDF文件中提取文本,这对于数据分析、信息检索和自动化任务非常有用。希望这篇文章和示例代码有助于您开始使用PyPDF2进行PDF文本提取。如若需要其他高级用法,例如比例调整、放缩等操作,可以访问PyPDF2的官方网站查看其他示例。

以上就是Python利用PyPDF2库实现轻松提取PDF文本的详细内容,更多关于Python PyPDF2提取PDF文本的资料请关注脚本之家其它相关文章!

相关文章

  • 使用Python的Tornado框架实现一个一对一聊天的程序

    使用Python的Tornado框架实现一个一对一聊天的程序

    这篇文章主要介绍了使用Python的Tornado框架实现一个一对一聊天的程序,程序基于WebSocket,需要的朋友可以参考下
    2015-04-04
  • Python常见内置高效率函数用法示例

    Python常见内置高效率函数用法示例

    这篇文章主要介绍了Python常见内置高效率函数用法,结合实例形式分析了Python中filter()、map()、reduce()、lambda匿名函数等功能与简单使用技巧,需要的朋友可以参考下
    2018-07-07
  • 地图可视化神器kepler.gl python接口的使用方法

    地图可视化神器kepler.gl python接口的使用方法

    这篇文章主要介绍了python 地图可视化神器kepler.gl近期重要更新的的相关资料,帮助大家利用python实现地图可视化,感兴趣的朋友可以了解下
    2020-12-12
  • Django实现列表页商品数据返回教程

    Django实现列表页商品数据返回教程

    这篇文章主要介绍了Django实现列表页商品数据返回教程,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-04-04
  •  分享Python 中的 7 种交叉验证方法

     分享Python 中的 7 种交叉验证方法

    这篇文章主要给大家分享的是Python 中的 7 种交叉验证方法,交叉验证是一种用于估计机器学习模型性能的统计方法,它是一种评估统计分析结果如何推广到独立数据集的方法,下文相关介绍,需要的朋友可以参考一下
    2022-03-03
  • Python析构函数__del__定义原理解析

    Python析构函数__del__定义原理解析

    这篇文章主要介绍了Python析构函数__del__定义原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-11-11
  • Python Matplotlib通过plt.subplots创建子绘图

    Python Matplotlib通过plt.subplots创建子绘图

    这篇文章主要介绍了Python Matplotlib通过plt.subplots创建子绘图,plt.subplots调用后将会产生一个图表和默认网格,与此同时提供一个合理的控制策略布局子绘图,更多相关需要的朋友可以参考下面文章内容
    2022-07-07
  • Pycharm导入Python包,模块的图文教程

    Pycharm导入Python包,模块的图文教程

    今天小编就为大家分享一篇Pycharm导入Python包,模块的图文教程,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-06-06
  • 如何打包Python Web项目实现免安装一键启动的方法

    如何打包Python Web项目实现免安装一键启动的方法

    这篇文章主要介绍了如何打包Python Web项目,实现免安装一键启动,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-05-05
  • Pandas中迭代DataFrame行的方法总结

    Pandas中迭代DataFrame行的方法总结

    Python是进行数据分析的一种很好的语言,主要是因为以数据为中心的Python包的奇妙生态系统,本文主要为大家介绍了如何在Pandas中迭代DataFrame中的行,有需要的可以参考下
    2023-09-09

最新评论