Python实现PDF文件的一些操作_学习笔记

python中实现对PDF的操作

原文链接:https://zhuanlan.zhihu.com/p/55823723

python作为一种具有相对简单语法的高级解释语言,即使对于那些没有编程经验的人来说,Python也是简单易操作的。强大的Python库让你事半功倍。

在处理文本信息时,通常我们需要从word、PDF文档中提取出信息,而PDF是最重要和最广泛使用的用来呈现和交换文件的数字媒体之一,。PDF包含有用的信息,链接和按钮,表单域,音频,视频和业务逻辑。python库很好地集成并提供处理非结构化数据源。运用python可以轻松从PDF中提取有用信息后,您可以轻松地将该数据用于任何机器学习或自然语言处理模型。

常见的处理PDF的库

PDFMiner :一个从PDF文档中提取信息的工具。与其他PDF相关工具不同,它完全专注于获取和分析文本数据。
PyPDF2 :一个纯python PDF库,能够分割,合并,裁剪和转换PDF文件的页面。它还可以向PDF文件添加自定义数据,查看选项和密码。它可以从PDF中检索文本和元数据,以及将整个文件合并在一起。
Tabula-py:一个 tabula-java的简单Python包装器,它可以读取PDF表。您可以从PDF读取表格并转换为pandas的DataFrame。tabula-py还允许您将PDF文件转换为CSV / TSV / JSON文件。
Slate:PDFMiner的包装器实现
PDFQuery:pdfminer,lxml和pyquery的轻量级包装器。它旨在使用尽可能少的代码可靠地从PDF集合中提取数据。
xpdf :xpdf的 Python包装器(目前只是“pdftotext”实用程序

(1)PDF中提取文本,这里使用的是PyPDF2库

import PyPDF2
# pdf file object
# you can find find the pdf file with complete code in below
pdfFileObj = open('example.pdf', 'rb')
# pdf reader object
pdfReader = PyPDF2.PdfFileReader(pdfFileObj)
# number of pages in pdf
print(pdfReader.numPages)
# a page object
pageObj = pdfReader.getPage(0)
# extracting text from page.
# this will print the text you can also save that into String
print(pageObj.extractText())

(2)从PDF中读取表格数据
使用Pdf中的Table数据,我们可以使用Tabula-py,示例代码如下:

import tabula
# readinf the PDF file that contain Table Data
# you can find find the pdf file with complete code in below
# read_pdf will save the pdf table into Pandas Dataframe
df = tabula.read_pdf("offense.pdf")
# in order to print first 5 lines of Table
df.head()
df = tabula.read_pdf(“crime.pdf”,multiple_tables = True#如果您的Pdf文件包含多个表,可以进行如上设置:
#还可以从任何特定PDF页面的特定部分提取信息
tabula.read_pdf(“crime.pdf”,area =126,149,212,462),pages = 1#设置读取输出为JSON格式
tabula.read_pdf(“crime.pdf”,output_format =“json”)

(3)将PDF导出到Excel
使用以下代码:

tabula.convert_into(“crime.pdf”,“crime_testing.xlsx”,output_format =“xlsx”)

更多关于PDF操作的参考信息:

https://www.geeksforgeeks.org/working-with-pdf-files-in-python/

关于PyPDF2库的介绍和使用:

https://automatetheboringstuff.com/chapter13/
安利一个自己觉得挺好的公众号:深度学习与Python
大家可以一起讨论学习进步,加油!

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值