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

首頁 > 編程 > Python > 正文

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

2020-02-23 00:03:35
字體:
來源:轉載
供稿:網友

本文實例講述了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'            
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 禹州市| 巫山县| 特克斯县| 高邮市| 红河县| 灵寿县| 富川| 日土县| 高唐县| 石狮市| 莒南县| 平潭县| 无棣县| 大名县| 教育| 昭觉县| 富源县| 双流县| 万年县| 错那县| 巴林左旗| 筠连县| 科尔| 五台县| 沈丘县| 志丹县| 红原县| 大悟县| 凤台县| 乳山市| 临安市| 炎陵县| 鄱阳县| 龙江县| 杭锦旗| 襄汾县| 咸丰县| 治多县| 阿克陶县| 永济市| 彭水|