python应用:如何用python提取pdf文件中的文字

从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也就是第一页,运行以上代码会得到如下结果:


可以看到,文字虽然被提取出来了,但是文字并没有自动换行,相应的换行符号都被“\n”替代了,此时我们需要做的就是将提取出来的原始文本正常换行,很简单直接用处理字符串的.split方法即可。代码如下:

page1.extractText().split('\n')

运行代码得到结果:

可以看到,现在文字都进行了正常换行,但是因为原始pdf的排版问题,这个表现并不是很好,大家可以换一个pdf看一看效果。

结语

今天给大家介绍了用python从pdf文件中提取文字的方法,这个只是提取方法的一小部分演示,还有很多库都可以进行pdf文字的提取,之后再给大家写。感谢大家耐心看完。发表这些东西的主要目的就是督促自己,希望大家关注评论指出不足,一起进步。内容我都会写的很细,用到的数据集也会在原文中给出链接,你只要按照文章中的代码自己也可以做出一样的结果,一个目的就是零基础也能懂,因为自己就是什么基础没有从零学Python的,加油。

(数据链接发不了,请关注后私信回复“数据链接”获取本头条号所有使用数据,包括本文的pdf文件)

相关文章

oeasy教您玩转python - 9 - # 换行字符

换行字符回忆上次内容数制可以转化bin(n)可以把数字转化为 2进制hex(n)可以把数字转化为 16进制int(n)可以把数字转化为 10进制编码和解码可以转化encode 编码decode 解码A...

Python中print函数使用方法汇总,涨知识了

Print在日常的程序编写和调试中,使用的比较多,下面给大家详细分析下print不为人知的一些功能,比如print可以打印指定颜色的字体,可以将指定的内容打印输出到文件中去等。Print的完整语法格式...

「oeasy」python0020换行字符_feed_line_lf_反斜杠n_B语言_安徒生

换行字符回忆上次内容struct包可以让我们使用封包格式把数字封包到字节里pack函数负责封包unpack函数负责解封我们通过封到不同的字节状态遍历了一次ascii码还是有那片黑色的区域好像是一片黑暗...

「零基础学Python」Python中转义字符如何使用的?

一、什么是转义字符?√就是反斜杆+想要实现的转义功能首字母,表达特殊含义。二、为什么需要转义字符?√当字符串中包含换行、回车、水平制表符或退格等无法直接表示的特殊字符时,也可以使用转义字符当字符串中包...

python代码是如何执行的? python代码运行按哪个键

解释运行程序 回忆上次内容py 文件的程序是按照顺序一行行挨排解释执行的我们可以 python3 -m pdb hello.py 来对程序调试调试的目的是去除 bug别害怕 bugbug 会有提示我们...

python入门到精通(第九节while循环) #python基础

while函数用于循环,条件也要用冒号结尾。num+=i等于num=num+i,表示每次自身增加i。i+=1每次增加1,作为结束循环的条件。因为i<=10时进行循环,当i...