国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

Python解析并讀取PDF文件內容的方法

2020-01-04 15:09:07
字體:
來源:轉載
供稿:網友

本文實例講述了Python解析并讀取PDF文件內容的方法。分享給大家供大家參考,具體如下:

一、問題描述

利用python,去讀取pdf文本內容。

Python,讀取,PDF文件

二、效果

Python,讀取,PDF文件

三、運行環境

python2.7

四、需要安裝的庫

pip install pdfminer

五、實現源代碼

代碼1(win64)

# coding=utf-8import sysreload(sys)sys.setdefaultencoding('utf-8')import timetime1=time.time()import os.pathfrom pdfminer.pdfparser import PDFParser,PDFDocumentfrom pdfminer.pdfinterp import PDFResourceManager, PDFPageInterpreterfrom pdfminer.converter import PDFPageAggregatorfrom pdfminer.layout import LTTextBoxHorizontal,LAParamsfrom pdfminer.pdfinterp import PDFTextExtractionNotAllowedresult=[]class CPdf2TxtManager():  def __init__(self):    '''''    Constructor    '''  def changePdfToText(self, filePath):    file = open(path, 'rb') # 以二進制讀模式打開    #用文件對象來創建一個pdf文檔分析器    praser = PDFParser(file)    # 創建一個PDF文檔    doc = PDFDocument()    # 連接分析器 與文檔對象    praser.set_document(doc)    doc.set_parser(praser)    # 提供初始化密碼    # 如果沒有密碼 就創建一個空的字符串    doc.initialize()    # 檢測文檔是否提供txt轉換,不提供就忽略    if not doc.is_extractable:      raise PDFTextExtractionNotAllowed    # 創建PDf 資源管理器 來管理共享資源    rsrcmgr = PDFResourceManager()    # 創建一個PDF設備對象    laparams = LAParams()    device = PDFPageAggregator(rsrcmgr, laparams=laparams)    # 創建一個PDF解釋器對象    interpreter = PDFPageInterpreter(rsrcmgr, device)    pdfStr = ''    # 循環遍歷列表,每次處理一個page的內容    for page in doc.get_pages(): # doc.get_pages() 獲取page列表      interpreter.process_page(page)      # 接受該頁面的LTPage對象      layout = device.get_result()      for x in layout:        if hasattr(x, "get_text"):          # print x.get_text()          result.append(x.get_text())          fileNames = os.path.splitext(filePath)          with open(fileNames[0] + '.txt','wb') as f:            results = x.get_text()            print(results)            f.write(results + '/n')if __name__ == '__main__':  '''''   解析pdf 文本,保存到txt文件中  '''  path = u'C:/data3.pdf'  pdf2TxtManager = CPdf2TxtManager()  pdf2TxtManager.changePdfToText(path)  # print result[0]  time2 = time.time()  print u'ok,解析pdf結束!'  print u'總共耗時:' + str(time2 - time1) + 's'

代碼2(win32)

# coding=utf-8import sysreload(sys)sys.setdefaultencoding('utf-8')import timetime1=time.time()import os.pathfrom pdfminer.pdfinterp import PDFResourceManager, PDFPageInterpreterfrom pdfminer.converter import PDFPageAggregatorfrom pdfminer.layout import LAParamsfrom pdfminer.pdfpage import PDFTextExtractionNotAllowedfrom pdfminer.pdfparser import PDFParserfrom pdfminer.pdfdocument import PDFDocumentfrom pdfminer.pdfpage import PDFPageresult=[]class CPdf2TxtManager():  def __init__(self):    '''''    Constructor    '''  def changePdfToText(self, filePath):    file = open(path, 'rb') # 以二進制讀模式打開    #用文件對象來創建一個pdf文檔分析器    praser = PDFParser(file)    # 創建一個PDF文檔    doc = PDFDocument(praser)    # 檢測文檔是否提供txt轉換,不提供就忽略    if not doc.is_extractable:      raise PDFTextExtractionNotAllowed    # 創建PDf 資源管理器 來管理共享資源    rsrcmgr = PDFResourceManager()    # 創建一個PDF設備對象    laparams = LAParams()    device = PDFPageAggregator(rsrcmgr, laparams=laparams)    # 創建一個PDF解釋器對象    interpreter = PDFPageInterpreter(rsrcmgr, device)    pdfStr = ''    # 循環遍歷列表,每次處理一個page的內容    for page in PDFPage.create_pages(doc): # doc.get_pages() 獲取page列表      interpreter.process_page(page)      # 接受該頁面的LTPage對象      layout = device.get_result()      for x in layout:        if hasattr(x, "get_text"):          # print x.get_text()          result.append(x.get_text())          fileNames = os.path.splitext(filePath)          with open(fileNames[0] + '.txt','wb') as f:            results = x.get_text()            print(results)            f.write(results + '/n')if __name__ == '__main__':  '''''   解析pdf 文本,保存到txt文件中  '''  path = u'C:/36.pdf'  pdf2TxtManager = CPdf2TxtManager()  pdf2TxtManager.changePdfToText(path)  # print result[0]  time2 = time.time()  print u'ok,解析pdf結束!'  print u'總共耗時:' + str(time2 - time1) + 's'

希望本文所述對大家Python程序設計有所幫助。


注:相關教程知識閱讀請移步到python教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 汉阴县| 高阳县| 临颍县| 苏尼特右旗| 密山市| 哈密市| 锡林郭勒盟| 密山市| 永年县| 陇西县| 岳普湖县| 报价| 裕民县| 津南区| 贵定县| 合川市| 大余县| 轮台县| 墨竹工卡县| 成都市| 勃利县| 石屏县| 长子县| 望江县| 湖南省| 泸西县| 金阳县| 西吉县| 长子县| 贡嘎县| 开远市| 沙坪坝区| 威宁| 博乐市| 安远县| 墨玉县| 酒泉市| 新晃| 通州区| 盘锦市| 博客|