国产探花免费观看_亚洲丰满少妇自慰呻吟_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'            
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 牡丹江市| 新余市| 济宁市| 平果县| 南京市| 建水县| 沙雅县| 交城县| 无为县| 咸阳市| 木里| 卓资县| 东乌珠穆沁旗| 育儿| 呼图壁县| 芮城县| 成安县| 广汉市| 清水河县| 保亭| 温宿县| 安康市| 崇明县| 龙南县| 城口县| 临沂市| 八宿县| 永靖县| 灵台县| 平原县| 灯塔市| 右玉县| 天水市| 锦屏县| 礼泉县| 呼和浩特市| 桂平市| 紫阳县| 广宁县| 汕头市| 安阳市|