python可以这样学 pdf,python pdf操作
Yyds干货库存
1.简介PDF文档是我们在日常工作中经常遇到的一种文件格式。有时候我们需要编辑,从中提取一些有用的数据。在本文中,我将向您展示如何使用Python中的PDF库从PDF文档中提取文本、表格、图像和其他类型的数据。
废话少说,我们开始吧!
2.从PDF文件中获取文本。Python中有很多库可以帮助我们方便地从PDF文件中获取相应的文本,其中PyPdf2是最常用的一个。我们不妨举个栗子,看看如何使用相应的函数。
示例代码如下:
#导入模块
导入PyPDF2
#创建一个pdf文件对象
pdfFileObj=open(file.pdf , rb )
#创建pdf阅读器对象
pdfReader=PyPDF2。PdfFileReader(pdfFileObj)
#创建页面对象
pageObj=pdfReader.getPage(0)
#从页面提取文本
print(pageObj.extractText())
#关闭pdf文件对象
PdfFileObj.close()在上面的代码中,我们逐行分析:
首先,我们导入我们的第三方库PyPDF2。然后我们用open()函数以二进制方式读取我们的PDF文件,将读取的file对象传递给PdfFileReader函数获取PDF的某一页的对象,生成pageObj。最后,我们使用close函数来关闭PdfFileObj。最后,需要关闭文件。如果我们让它打开,并试图读取另一个文件,它会提示我们一个文件读取错误。
上面的代码显示了提取单个页面的逻辑,然后我们可以使用循环语句读取所有页面。示例代码如下:
#导入模块
导入PyPDF2
#创建一个pdf文件对象
pdfFileObj=open(file.pdf , rb )
#创建pdf阅读器对象
pdfReader=PyPDF2。PdfFileReader(pdfFileObj)
对于范围内的I(pdf reader . numpages):
pageObj=pdfReader.getPage(i)
print(pageObj.extractText())
#关闭pdf文件对象
PdfFileObj.close()为例,假设我们需要的PDF文件如下:
上述代码的运行结果如下:
一个简单的PDF文件这是一个小演示。pdf文件-
仅用于虚拟力学教程。更多文本。更多
文字。和更多文本。和更多文本。和更多文本。
和更多文本。和更多文本。和更多文本。和更多文本。更多
文字。和更多文本。无聊,zzzzz。和更多文本。和更多文本。和
更多文本。和更多文本。和更多文本。和更多文本。和更多文本。
和更多文本。和更多文本。
和更多文本。和更多文本。和更多文本。和更多文本。更多
文字。和更多文本。和更多文本。甚至更多。续第2页.3.使用PyPDF2从PDF文件中提取表格不太方便。为了正确地从PDF文件中提取表格,我们需要首先采用计算机视觉的方法检测这些表格,然后进行机器学习计算,最后提取出来。
为了完成这项任务,这里推荐一个名为Tabula的第三方python模块。这个模块专门用于从pdf中读取和提取表格,并以CSV格式存储它们。
示例代码如下:
进口目录
#将pdf读入数据帧列表
df=tabula.read_pdf(test.pdf ,pages=all )
Print(df)上面的代码解析如下:
首先,我们引入tabula,我们需要的第三方库,然后我们使用read_pdf函数读取pdf文件,并从所有页面中提取表格。最后,我们使用print函数打印提取的表格。当然,我们也可以将提取的数据存储为csv格式。示例代码如下:
进口目录
#将PDF转换为CSV文件
Tabula.convert _ into (test.pdf , output.csv ,output _ format= csv ,pages= all) 4 .在Python中从PDF文件中获取图片,我们不得不使用其他第三方模块从PDF文件中提取图片。
使用以下安装代码安装我们所需的第三方库PyMuPDF和图像处理库Pillow:
点安装PyMuPDF枕头从便携文档格式文件中提取图片的示例代码如下:
导入菲茨
导入超正析象管
从太平航运进口图片
pdf_file=fitz.open(test2.pdf )
#迭代便携文档格式页面
对于范围内的page _ index(len(pdf _ file)):
#获取页面本身
page=pdf_file[page_index]
image_list=page.getImageList()
对于image_index,img in enumerate(第。getimagelist(),start=1):
#获取图像的外部参照
xref=img[0]
#提取图像字节
base _ image=pdf _ file提取图像(外部参照)
image _ bytes=base _ image[ image ]
#获取图像扩展名
image_ext=base_image[ext]
#装载到太平航运
image=Image.open(io .字节数(图像字节数))
#省省吧
形象。保存(打开f image { page _ index 1 } _ { image _ index } .{image_ext} , wb ))假设我们的便携文档格式文件内容如下:
我们测试上述代码,得到结果如下:
5.总结本文重点介绍了在计算机编程语言中如何利用功能强大的第三方库来从便携文档格式文件中获取文本表格和图像数据,并给出了相应的代码示例!
您学废了吗?
关注公众号《AI算法之道》 ,获取更多人工智能算法资讯。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。