python怎么读取pdf为文本_python怎么读取pdf文本内容
python读取pdf文本内容的方法:首先打开相应的python脚本文件;然后使用PDFMiner工具来读取pdf文本内容;最后通过print输出读取后的内容即可。
python读取pdf文本内容
python处理pdf也是常用的技术了,对于python3来说,pdfminer3k是一个非常好的工具。
PDFMiner是一个可以从PDF文档中提取信息的工具。与其他PDF相关的工具不同,它注重的完全是获取和分析文本数据。
PDFMiner允许你获取某一页中文本的准确位置和一些诸如字体、行数的信息。它包括一个PDF转换器,可以把PDF文件转换成HTML等格式。它还有一个扩展的PDF解析器,可以用于除文本分析以外的其他用途。pip install pdfminer3k
首先,为了满足大部分人的需求,我先给一个通用一点的脚本来读取pdf中的文本:from io import StringIO
from io import open
from pdfminer.converter import TextConverter
from pdfminer.layout import LAParams
from pdfminer.pdfinterp import PDFResourceManager, process_pdf
def read_pdf(pdf):
# resource manager
rsrcmgr = PDFResourceManager()
retstr = StringIO()
laparams = LAParams()
# device
device = TextConverter(rsrcmgr, retstr, laparams=laparams)
process_pdf(rsrcmgr, device, pdf)
device.close()
content = retstr.getvalue()
retstr.close()
# 获取所有行
lines = str(content).split("\n")
return lines
if __name__ == '__main__':
with open('t1.pdf', "rb") as my_pdf:
print(read_pdf(my_pdf))
我主要是想在pdf中抽出自己想要的一些关键信息,所以需要找到这些信息的共同点。幸运的是,这些关键信息的行都含有'//',所以我只需找到含有'//'的行就行了,于是写了以下脚本。
这样就可以直接使用了,我们先看脚本:from io import StringIO
from io import open
from pdfminer.converter import TextConverter
from pdfminer.layout import LAParams
from pdfminer.pdfinterp import PDFResourceManager, process_pdf
def read_pdf(pdf):
# resource manager
rsrcmgr = PDFResourceManager()
retstr = StringIO()
laparams = LAParams()
# device
device = TextConverter(rsrcmgr, retstr, laparams=laparams)
process_pdf(rsrcmgr, device, pdf)
device.close()
content = retstr.getvalue()
retstr.close()
# 获取所有行
lines = str(content).split("\n")
units = [1, 2, 3, 5, 7, 8, 9, 11, 12, 13]
header = '\x0cUNIT '
# print(lines[0:100])
count = 0
flag = False
text = open('words.txt', 'w+')
for line in lines:
if line.startswith(header):
flag = False
count += 1
if count in units:
flag = True
print(line)
text.writelines(line + '\n')
if '//' in line and flag:
text_line = line.split('//')[0].split('. ')[-1]
print(text_line)
text.writelines(text_line+'\n')
text.close()
def _main():
my_pdf = open('t1.pdf', "rb")
read_pdf(my_pdf)
my_pdf.close()
if __name__ == '__main__':
_main()
其实看到lines = str(content).split("\n")那一行就够了,我们可以把lines都print出来,就可以看到pdf里面的内容。
这样我们就可以把pdf文件处理看作简单的字符串数据处理了。接下来的脚本操作也不用过多解释了。
更多相关知识,请访问 PHP中文网!!
本文原创发布php中文网,转载请注明出处,感谢您的尊重!
python怎么读取pdf为文本_python怎么读取pdf文本内容相关推荐
- python docx 合并文档 图片_Python+pymupdf处理PDF文档案例6则
推荐图书:<Python程序设计(第3版)>,(ISBN:978-7-302-55083-9),清华大学出版社,2020年6月第1次印刷,7月第2次印刷 京东购买链接:https://it ...
- python docx 合并文档 图片_python玩转pdf全攻略
本篇说点轻松的,聊下Python对pdf的各种操作,包含pdf转word,pdf转图片等. pdf转换word文档 保留格式 pdf转换为word文档,被大众经常使用的是纯Python库pdfmine ...
- python pdf 加水印_Python实现给PDF添加水印的方法
前言 本文针对 仅有 PDF 文件,而无相关 PDF 编辑器的情况下,给 PDF 添加水印. 一.前期准备 安装 PyPDF2 ,命令提示框输入: pip install PyPDF2 新建 wate ...
- python中几种读取文件的方法_python 逐行读取文件的几种方法
Python四种逐行读取文件内容的方法 下面四种Python逐行读取文件内容的方法, 分析了各种方法的优缺点及应用场景,以下代码在python3中测试通过, python2中运行部分代码已注释,稍加修 ...
- python读取文件详解_python 文件读取方法详解
#绝对路径# f =开放(' \/用户\/方\/下载\/我的古诗.文本的模式= ' r ',编码= ' utf - 8\u201D) =() # #内容打印(内容)#()#相对路径f =开放(\u20 ...
- python pdf 加水印_Python批量给PDF加水印,10秒搞定“不可编辑”的PDF!
在日常的工作中,我们经常需要和PDF文件打交道,PDF的处理,比如修改文字.增减页面等,都是非常麻烦的,相信大家有共同的感受. 有时我们还需要对PDF添加水印,野生的PDF工具都是给单个PDF添加水印 ...
- python爬取微博文本_Python爬虫爬取新浪微博内容示例【基于代理IP】
本文实例讲述了Python爬虫爬取新浪微博内容.分享给大家供大家参考,具体如下: 用Python编写爬虫,爬取微博大V的微博内容,本文以女神的微博为例(爬新浪m站:https://m.weibo.cn ...
- python加载图片并显示_python OpenCV 读取并显示图像
读入图像 读入图像使用cv2.imread(). 读取方式: cv2.IMREAD_COLOR:读取一副彩色图像,图像的透明度会被忽略,这是默认参数 cv2.IMREAD_GRAYSCALE:以灰度图 ...
- python批量提取pdf的数据_Python批量提取PDF文件中文本的脚本
本文实例为大家分享了Python批量提取PDF文件中文本的具体代码,供大家参考,具体内容如下 首先需要执行命令pip install pdfminer3k来安装处理PDF文件的扩展库. import ...
最新文章
- 第一课.图与图神经网络
- 野指针出现的三种情况
- 数据结构之单链表(头结点)的一些常用操作(增删改查逆)
- 每天进步一点点017
- 大唐豪侠服务器列表文件格式错误,[动态] 大唐豪侠1.2.4版本更新公告-大唐豪侠-东北游戏网...
- websql mysql_HTML5 Web SQL 数据库 | 菜鸟教程
- unity 引用prefab_Unity基础教程-对象管理(二)——对象多样化(Fabricating Shapes)...
- 十大Excel函数(一)
- Matlab中sqrt函数的用法
- Xilinx差分输入时钟100Ω终端电阻设置
- 计算机03年word做母亲节贺卡,word2007怎样制作电子母亲节贺卡
- 迅睿CMS插件自动采集伪原创免费插件
- 雪上加霜!吴秀波在《雪豹》中被除名
- 失眠的岁月,我们都交了哪些科技智商税?
- 关于数学分支与数学家的一个故事
- 行走在前端路上的一些想法
- 最全的WiFi速率对应表(802.11b、802.11g、802.11a、802.11n、802.11ac、802.11ax)及速率计算方法
- java正则基本用法
- 最适合家用的洗地机哪个牌子好?最好用的洗地机推荐
- Mac最佳视频编辑器推荐