利用 Python PyPDF2库轻松提取PDF文本(及其他高级操作)

当需要从PDF文件中提取文本时,Python中的PyPDF2库是一个非常有用的工具。无论您是需要分析PDF文档中的内容还是需要在文档中搜索特定的信息,PyPDF2都可以帮助您轻松实现这些任务。在本文中,我们将探讨如何使用PyPDF2库提取PDF文件中的文本,并提供一些示例代码来帮助您入门。

安装PyPDF2库

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

nginx 复制代码
pip install PyPDF2

打开PDF文件,并读取内容

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

makefile 复制代码
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允许您执行此操作。

javascript 复制代码
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,您可以旋转页面以适应您的需求。

makefile 复制代码
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'中,并在第一页和第六页添加了两个书签。

cs 复制代码
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的官方网站查看其他示例。

· END ·

HAPPY LIFE

本文仅供学习交流使用,如有侵权请联系作者删除

相关推荐
Villiam_AY2 分钟前
redis主从复制
数据库·redis·缓存
IOT.FIVE.NO.116 分钟前
Conda安装pytorch和cuda出现问题的解决记录
人工智能·pytorch·python
甜甜的资料库24 分钟前
基于微信小程序的作业管理系统源码数据库文档
java·数据库·微信小程序·小程序
甜甜的资料库27 分钟前
基于微信小程序的车位共享平台的设计与实现源码数据库文档
数据库·微信小程序·小程序
中科三方1 小时前
什么是权威解析服务器?权威解析服务器哪些作用?
服务器·git·github
七灵微1 小时前
【后端】单点登录
服务器·前端
bubiyoushang8884 小时前
Windows11 WSL2 Ubuntu编译安装perf工具
linux·运维·ubuntu
行云流水剑5 小时前
【学习记录】使用 Kali Linux 与 Hashcat 进行 WiFi 安全分析:合法的安全测试指南
linux·学习·安全
xuanwojiuxin6 小时前
linux panic-propagation
linux·运维·服务器
why1516 小时前
微服务商城-商品微服务
数据库·后端·golang