从pdf中提取文字,相信很多人都干过这事,怎么在python中实现呢,今天带大家看看。
第一步导入库
import PyPDF2
第二步导入pdf文件
pdf_file =open('dataset/laban.1027.pdf', 'rb')
第三步读取pdf并检查加密情况
read_pdf = PyPDF2.PdfFileReader(pdf_file)read_pdf.getIsEncrypted()read_pdf.numPages
在上面的代码中我首先建立了一个pdf阅读器read_pdf,然后通过.getIsEncrypted方法检查这个pdf的加密情况。然后我们再看了看我们这个pdf到底有几页,结果如下:
我们得到的结果是Flase,页码数为1,说明我们的pdf是没有加密的,要注意如果是加密的pdf我们在之后的提取文字过程可能会报错。
第4步提取文字
提取文字的代码如下:
page1 = read_pdf.getPage(0)page1.extractText()
解释一下上面的代码,首先还是要指定提取的pdf的页码,我这儿指定的是0也就是第一页,运行以上代码会得到如下结果:
可以看到,文字虽然被提取出来了,但是文字并没有自动换行,相应的换行符号都被“”替代了,此时我们需要做的就是将提取出来的原始文本正常换行,很简单直接用处理字符串的.split方法即可。代码如下:
page1.extractText().split('')
运行代码得到结果:
可以看到,现在文字都进行了正常换行,但是因为原始pdf的排版问题,这个表现并不是很好,大家可以换一个pdf看一看效果。
结语
今天给大家介绍了用python从pdf文件中提取文字的方法,这个只是提取方法的一小部分演示,还有很多库都可以进行pdf文字的提取,之后再给大家写。感谢大家耐心看完。发表这些东西的主要目的就是督促自己,希望大家关注评论指出不足,一起进步。内容我都会写的很细,用到的数据集也会在原文中给出链接,你只要按照文章中的代码自己也可以做出一样的结果,一个目的就是零基础也能懂,因为自己就是什么基础没有从零学Python的,加油。
(数据链接发不了,请关注后私信回复“数据链接”获取本头条号所有使用数据,包括本文的pdf文件)