您好,登錄后才能下訂單哦!
這篇文章給大家分享的是有關python如何讀取pdf格式文檔的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。
一、 準備工作
安裝對應的庫 pip install pdfminer3k pip install pdfminer.six
二、部分變量的含義
PDFDocument(pdf文檔對象)
PDFPageInterpreter(解釋器)
PDFParser(pdf文檔分析器)
PDFResourceManager(資源管理器)
PDFPageAggregator(聚合器)
LAParams(參數分析器)
三、PDFMiner類之間的關系
PDFMiner的相關文檔(點擊跳轉)
四、代碼實現
#!/usr/bin/env python # -*- coding:utf-8 -*- # datetime:2021/3/17 12:12 # software: PyCharm # version: python 3.9.2 def changePdfToText(filePath): """ 解析pdf 文本,保存到同名txt文件中 param: filePath: 需要讀取的pdf文檔的目錄 introduced module: from pdfminer.pdfpage import PDFPage from pdfminer.pdfparser import PDFParser from pdfminer.pdfinterp import PDFResourceManager, PDFPageInterpreter from pdfminer.converter import PDFPageAggregator from pdfminer.layout import LAParams from pdfminer.pdfdocument import PDFDocument, PDFTextExtractionNotAllowed import os.path """ file = open(filePath, 'rb') # 以二進制讀模式打開 # 用文件對象來創建一個pdf文檔分析器 praser = PDFParser(file) # 創建一個PDF文檔 doc = PDFDocument(praser, '') # praser :上面創建的pdf文檔分析器 ,第二個參數是密碼,設置為空就好了 # 連接分析器 與文檔對象 praser.set_document(doc) # 檢測文檔是否提供txt轉換,不提供就忽略 if not doc.is_extractable: raise PDFTextExtractionNotAllowed # 創建PDf 資源管理器 來管理共享資源 rsrcmgr = PDFResourceManager() # 創建一個PDF設備對象 laparams = LAParams() device = PDFPageAggregator(rsrcmgr, laparams=laparams) # 創建一個PDF解釋器對象 interpreter = PDFPageInterpreter(rsrcmgr, device) result = [] # 內容列表 # 循環遍歷列表,每次處理一個page的內容 for page in PDFPage.create_pages(doc): interpreter.process_page(page) # 接受該頁面的LTPage對象 layout = device.get_result() for x in layout: if hasattr(x, "get_text"): result.append(x.get_text()) fileNames = os.path.splitext(filePath) # 分割 # 以追加的方式打開文件 with open(fileNames[0] + '.txt', 'a', encoding="utf-8") as f: results = x.get_text() # print(results) 這個句可以取消注釋就可以在控制臺將所有內容輸出了 f.write(results) # 寫入文件 # 調用示例 : # path = u'E:\\1.pdf' # changePdfToText(path)
from PyPDF2 import PdfFileReader # 定義獲取pdf內容的方法 def getPdfContent(filename): # 獲取PdfFileReader對象 pdf = PdfFileReader(open(filename, "rb")) content = "" #content是輸出文本 for i in range(0,pdf.getNumPages()): #遍歷每一頁 pageObj = pdf.getPage(i) try: extractedText = pageObj.extractText()#導出每一頁的內容,如果當前頁有圖片的話就跳過 content += extractedText + "\n" except BaseException: pass return content.encode("ascii", "ignore") # 將獲取的內容寫入txt文件 with open("test.txt","w") as f: count=0 #count的作用是限制每一行的文字個數,本人設置的是十行 #將獲取的文本變成字符串并用空白隔開 for item in str(getPdfContent("test.pdf")).split(" "): # 如果當前文字以句號結尾就換行 if item[-1]==".": f.write(item+"\n") count=0 else: f.write(item+" ") count +=1 # 如果寫了十個字就換行 if count==10: f.write("\n") # 重置count count = 0
感謝各位的閱讀!關于“python如何讀取pdf格式文檔”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。