电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術(shù)文章
文章詳情頁

python解析PDF程序代碼

瀏覽:4日期:2022-06-16 11:18:41
說在前面

和word的文本相比PDF更類似于一張張圖片,圖上放著一個個文字。對其的解析是將圖片上的文字提取到text文件中,方便之后的分析。

添加依賴

在python的環(huán)境中安裝PDFminer3k,不要裝錯了,一開始我裝的是PDFminer,結(jié)果有幾個包不能用pip install pdfminer3k

源程序代碼

#!/usr/bin/env python3# -*- coding:utf-8 -*-# pip3 install pdfminer3kimport osfrom pdfminer.converter import PDFPageAggregatorfrom pdfminer.layout import LAParams, LTTextBoxHorizontalfrom pdfminer.pdfparser import PDFParser, PDFDocumentfrom pdfminer.pdfinterp import PDFResourceManager, PDFPageInterpreter, PDFTextExtractionNotAllowedfrom pdfminer.pdfdevice import PDFDevicedef read_pdf(pdf_name, result_name): # 以二進(jìn)制讀模式打開 fp = open(pdf_name, ’rb’) # 用文件對象來創(chuàng)建一個pdf文檔分析器 parser = PDFParser(fp) # 創(chuàng)建一個pdf文檔 doc = PDFDocument() # 連接分析器 與文檔對象 parser.set_document(doc) doc.set_parser(parser) # 提供初始密碼,如果沒有密碼 就創(chuàng)建一個空的字符串 doc.initialize(’’) # 檢測文檔是否提供txt轉(zhuǎn)換,不提供就拋出異常 if not doc.is_extractable:raise PDFTextExtractionNotAllowed # 創(chuàng)建PDf 資源管理器 來管理共享資源 rsrcmgr = PDFResourceManager() # 創(chuàng)建一個PDF設(shè)備對象 laparams = LAParams() device = PDFPageAggregator(rsrcmgr, laparams=laparams) # 創(chuàng)建一個PDF解釋器對象 interpreter = PDFPageInterpreter(rsrcmgr, device) with open(result_name, 'w', encoding='u8') as fd_out:# 循環(huán)遍歷列表,每次處理一個page的內(nèi)容for i, page in enumerate(doc.get_pages(), 1): index = '===========《第{}頁》==========='.format(i) print(index) fd_out.write(index + 'n') interpreter.process_page(page) # 接受該頁面的LTPage對象 layout = device.get_result() for x in layout:# 這里layout是一個LTPage對象 里面存放著 這個page解析出的各種對象 一般包括LTTextBox,# LTFigure, LTImage, LTTextBoxHorizontal 等等 想要獲取文本就獲得對象的text屬性if not isinstance(x, LTTextBoxHorizontal): continueresults = x.get_text()print(results)fd_out.write(results)if __name__ == ’__main__’: # 獲取讀取文件夾 filePath = ’../PDFfile’ #遍歷文件夾 for i,j,k in os.walk(filePath):for m in k: # 格式化輸出的名稱和地址 result = ’../TextFile/’ + m[:-4] + ’.txt’ # 格式化源文件路徑 fileName = i + ’/’ + m # 調(diào)用函數(shù)解析 read_pdf(fileName, result)

參考以下代碼內(nèi)容:python 讀取pdf文本內(nèi)容

#!/usr/bin/env python3#-*- coding:utf-8 -*-# pip3 install pdfminer3k from pdfminer.converter import PDFPageAggregatorfrom pdfminer.layout import LAParams, LTTextBoxHorizontalfrom pdfminer.pdfparser import PDFParser, PDFDocumentfrom pdfminer.pdfinterp import PDFResourceManager, PDFPageInterpreter, PDFTextExtractionNotAllowedfrom pdfminer.pdfdevice import PDFDevice def read_pdf(pdf_name, result_name): # 以二進(jìn)制讀模式打開 fp = open(pdf_name, ’rb’) # 用文件對象來創(chuàng)建一個pdf文檔分析器 parser = PDFParser(fp) # 創(chuàng)建一個pdf文檔 doc = PDFDocument() # 連接分析器 與文檔對象 parser.set_document(doc) doc.set_parser(parser) # 提供初始密碼,如果沒有密碼 就創(chuàng)建一個空的字符串 doc.initialize(’’) # 檢測文檔是否提供txt轉(zhuǎn)換,不提供就拋出異常 if not doc.is_extractable:raise PDFTextExtractionNotAllowed # 創(chuàng)建PDf 資源管理器 來管理共享資源 rsrcmgr = PDFResourceManager() # 創(chuàng)建一個PDF設(shè)備對象 laparams = LAParams() device = PDFPageAggregator(rsrcmgr, laparams=laparams) # 創(chuàng)建一個PDF解釋器對象 interpreter = PDFPageInterpreter(rsrcmgr, device) with open(result_name,'w',encoding='u8') as fd_out:# 循環(huán)遍歷列表,每次處理一個page的內(nèi)容for i,page in enumerate(doc.get_pages(),1): index = '===========《第{}頁》==========='.format(i) print(index) fd_out.write(index + 'n') interpreter.process_page(page) # 接受該頁面的LTPage對象 layout = device.get_result() for x in layout:# 這里layout是一個LTPage對象 里面存放著 這個page解析出的各種對象 一般包括LTTextBox,# LTFigure, LTImage, LTTextBoxHorizontal 等等 想要獲取文本就獲得對象的text屬性if not isinstance(x, LTTextBoxHorizontal): continueresults = x.get_text()print(results)fd_out.write(results) if __name__ == ’__main__’: pdf_name = ’test.pdf’ result = ’test.txt’ read_pdf(pdf_name, result)

以上就是python解析PDF的詳細(xì)內(nèi)容,更多關(guān)于python解析PDF的資料請關(guān)注好吧啦網(wǎng)其它相關(guān)文章!

標(biāo)簽: Python 編程
相關(guān)文章:
主站蜘蛛池模板: 活性炭-蜂窝-椰壳-柱状-粉状活性炭-河南唐达净水材料有限公司 | 单级/双级旋片式真空泵厂家,2xz旋片真空泵-浙江台州求精真空泵有限公司 | 常州律师事务所_常州律所_常州律师-江苏乐天律师事务所 | 缠绕机|缠绕膜包装机|缠绕包装机-上海晏陵智能设备有限公司 | 包塑软管|金属软管|包塑金属软管-闵彬管业| 上海物流公司,上海货运公司,上海物流专线-优骐物流公司 | CTAB,表面活性剂1631溴型(十六烷基三甲基溴化铵)-上海升纬化工原料有限公司 | 大型果蔬切片机-水果冬瓜削皮机-洗菜机切菜机-肇庆市凤翔餐饮设备有限公司 | 网带通过式抛丸机,,网带式打砂机,吊钩式,抛丸机,中山抛丸机生产厂家,江门抛丸机,佛山吊钩式,东莞抛丸机,中山市泰达自动化设备有限公司 | 上海冠顶工业设备有限公司-隧道炉,烘箱,UV固化机,涂装设备,高温炉,工业机器人生产厂家 | 阿尔法-MDR2000无转子硫化仪-STM566 SATRA拉力试验机-青岛阿尔法仪器有限公司 | 运动木地板价格,篮球馆体育运动木地板生产厂家_欧氏地板 | 数显恒温油浴-电砂浴-高温油浴振荡器-常州迈科诺仪器有限公司 | FAG轴承,苏州FAG轴承,德国FAG轴承-恩梯必传动设备(苏州)有限公司 | 武汉创亿电气设备有限公司_电力检测设备生产厂家 | 高效节能电机_伺服主轴电机_铜转子电机_交流感应伺服电机_图片_型号_江苏智马科技有限公司 | 小型手持气象站-空气负氧离子监测站-多要素微气象传感器-山东天合环境科技有限公司 | 德国进口电锅炉_商用电热水器_壁挂炉_电采暖器_电热锅炉[德国宝] | 电表箱-浙江迈峰电力设备有限公司-电表箱专业制造商 | 电销卡 防封电销卡 不封号电销卡 电话销售卡 白名单电销卡 电销系统 外呼系统 | 双齿辊破碎机-大型狼牙破碎机视频-对辊破碎机价格/型号图片-金联机械设备生产厂家 | 精密模具-双色注塑模具加工-深圳铭洋宇通| 高压负荷开关-苏州雷尔沃电器有限公司| 螺旋叶片_螺旋叶片成型机_绞龙叶片_莱州源泽机械制造有限公司 | 博客-悦享汽车品质生活| 破碎机锤头_耐磨锤头_合金锤头-鼎成机械一站式耐磨铸件定制服务 微型驱动系统解决方案-深圳市兆威机电股份有限公司 | 中空玻璃生产线,玻璃加工设备,全自动封胶线,铝条折弯机,双组份打胶机,丁基胶/卧式/立式全自动涂布机,玻璃设备-山东昌盛数控设备有限公司 | 品牌策划-品牌设计-济南之式传媒广告有限公司官网-提供品牌整合丨影视创意丨公关活动丨数字营销丨自媒体运营丨数字营销 | 脑钠肽-白介素4|白介素8试剂盒-研域(上海)化学试剂有限公司 | 高铝砖-高铝耐火球-高铝耐火砖生产厂家-价格【荣盛耐材】 | 微信小程序定制,广州app公众号商城网站开发公司-广东锋火 | 锂电池生产厂家-电动自行车航模无人机锂电池定制-世豹新能源 | 档案密集架,移动密集架,手摇式密集架,吉林档案密集架-厂家直销★价格公道★质量保证 | 高效复合碳源-多核碳源生产厂家-污水处理反硝化菌种一长隆科技库巴鲁 | 爆炸冲击传感器-无线遥测传感器-航天星百科| 定做大型恒温循环水浴槽-工业用不锈钢恒温水箱-大容量低温恒温水槽-常州精达仪器 | 卫生型双针压力表-高温防腐差压表-安徽康泰电气有限公司 | 视觉检测设备_自动化检测设备_CCD视觉检测机_外观缺陷检测-瑞智光电 | 专业生产动态配料系统_饲料配料系统_化肥配料系统等配料系统-郑州鑫晟重工机械有限公司 | 定量包装机,颗粒定量包装机,粉剂定量包装机,背封颗粒包装机,定量灌装机-上海铸衡电子科技有限公司 | 荣事达手推洗地机_洗地机厂家_驾驶式扫地机_工业清洁设备 |