文章目錄
- 一、 準備作業
- 二、部分變數的含義
- 三、PDFMiner類之間的關系
- 四、代碼實作
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)
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/271578.html
標籤:python
上一篇:python實作深度學習中原始影像與預測結果疊置輸出
下一篇:快捷生成HTML代碼的實作
