欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python從PDF中提取文本的方法效率總結(jié)

 更新時間:2023年09月15日 09:31:46   作者:一口神探  
日常工作中我們經(jīng)常會用到pdf格式的文件,大多數(shù)情況下是瀏覽或者編輯pdf信息,但有時候需要提取pdf中的文本,這篇文章主要給大家總結(jié)介紹了關(guān)于Python從PDF中提取文本的方法效率,需要的朋友可以參考下

前言

這段時間做了好幾個關(guān)于年報的需求,其中無一例外需要從年報PDF中提取文本再進行下一步的操作。為了提高效率,對比分析了python中各種可以實現(xiàn)此功能的方法效率。

一、pdfplumber

簡介:

  • 可以為pdf文件插入文本字符、矩形和行的詳細(xì)信息
  • 對于非掃描格式pdf解析效果最佳
  • 基于pdfminer.six構(gòu)建
  • 代碼簡潔,易于理解

安裝:

pip install pdfplumber

示例:

import pdfplumber
def pdf2txt(pdf_path):
    txt = ''
    with pdfplumber.open(pdf_path) as pdf:
        for page in pdf.pages:
            txt = txt + page.extract_text()
    return txt

二、pdfminer

簡介:

  • 可以獲取文本的提取位置以及其他布局信息
  • 可將pdf轉(zhuǎn)換為其他格式(HTML/XML)
  • 支持基本的加密方式(RC4 and AES)

安裝:

pip install pdfminer

示例:

from pdfminer.converter import TextConverter
from pdfminer.pdfdocument import PDFTextExtractionNotAllowed
from pdfminer.pdfinterp import PDFResourceManager, PDFPageInterpreter
from pdfminer.pdfpage import PDFPage
def parsePDF(PDF_path):
    resource_manager = PDFResourceManager()
    fake_file_handle = io.StringIO()
    converter = TextConverter(resource_manager,fake_file_handle)
    page_interpreter = PDFPageInterpreter(resource_manager,converter)
    with open(PDF_path,'rb') as fh:
        for page in PDFPage.get_pages(fh,caching=True,check_extractable=True):
            page_interpreter.process_page(page)
        text = fake_file_handle.getvalue()
    converter.close()
    fake_file_handle.close()
    if text:
        return text

三、fitz / pymupdf

簡介:

  • 支持多種格式
  • 可以提取文字和圖像
  • 搜索文本

安裝:

直接安裝fitz會出現(xiàn)較多問題,建議安裝pymupdf

pip install pymupdf

示例:

import fitz
def parsePDF(filePath):
    with fitz.open(filePath) as doc:
        text = ""
        for page in doc.pages():
            text += page.get_text()
        if text:
            return text

官方示例:

https://github.com/pymupdf/PyMuPDF/tree/master/tests

四、性能對比

使用以上三種方法對同一個PDF進行文本提取,分別記錄提取文本結(jié)果的長度和運行時間,結(jié)果如下:

fitz提取出的文本長度不僅更長,耗時更是快了不止10倍!

可以說fitz在提取文本的性能方面完爆其他庫,但是卻很少有文章介紹這個庫,有點奇怪。

總結(jié)

到此這篇關(guān)于Python從PDF中提取文本的方法效率的文章就介紹到這了,更多相關(guān)Python從PDF提取文本內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • python SSH模塊登錄,遠(yuǎn)程機執(zhí)行shell命令實例解析

    python SSH模塊登錄,遠(yuǎn)程機執(zhí)行shell命令實例解析

    這篇文章主要介紹了python SSH模塊登錄,遠(yuǎn)程機執(zhí)行shell命令實例解析,具有一定借鑒價值,需要的朋友可以參考下
    2018-01-01
  • Python如何讀寫CSV文件

    Python如何讀寫CSV文件

    這篇文章主要介紹了Python如何讀寫CSV文件,幫助大家更好的理解和學(xué)習(xí)python,感興趣的朋友可以了解下
    2020-08-08
  • Python遞歸遍歷列表及輸出的實現(xiàn)方法

    Python遞歸遍歷列表及輸出的實現(xiàn)方法

    這篇文章主要介紹了Python遞歸遍歷列表及輸出的實現(xiàn)方法,可實現(xiàn)遞歸遍歷列表中的每一項,若是元祖則判斷是否為基本類型然后輸出,需要的朋友可以參考下
    2015-05-05
  • 基于PyQT5制作一個二維碼生成器

    基于PyQT5制作一個二維碼生成器

    這篇文章主要介紹了利用PyQT5制作一個簡單的二維碼生成器,并打包成exe可執(zhí)行程序。文中的示例代碼講解詳細(xì),感興趣的同學(xué)可以了解一下
    2021-12-12
  • pytorch梯度剪裁方式

    pytorch梯度剪裁方式

    今天小編就為大家分享一篇pytorch梯度剪裁方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-02-02
  • Python批量查找包含多個關(guān)鍵詞的PDF文件

    Python批量查找包含多個關(guān)鍵詞的PDF文件

    在信息爆炸的時代,數(shù)據(jù)管理變得愈發(fā)重要,本文主要為大家介紹了如何通過Python批量查找包含多個關(guān)鍵詞的PDF文件,希望對大家有所幫助
    2024-11-11
  • 用python實現(xiàn)PDF解密打印文件

    用python實現(xiàn)PDF解密打印文件

    大家好,本篇文章主要講的是用python實現(xiàn)PDF解密打印文件,感興趣的同學(xué)趕快來看一看吧,對你有幫助的話記得收藏一下
    2022-02-02
  • Python中創(chuàng)建包和增添包的路徑(sys.path.append())

    Python中創(chuàng)建包和增添包的路徑(sys.path.append())

    本文主要介紹了Python中創(chuàng)建包和增添包的路徑(sys.path.append()),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2025-01-01
  • 在Django同1個頁面中的多表單處理詳解

    在Django同1個頁面中的多表單處理詳解

    這篇文章主要給大家介紹了在Django同1個頁面中的多表單處理的相關(guān)資料,文章先給大家介紹了如何快速上手Django實現(xiàn)項目的方法,方便讓大家理解和學(xué)習(xí),需要的朋友可以參考借鑒,下面來一起看看吧。
    2017-01-01
  • python爬蟲中的url下載器用法詳解

    python爬蟲中的url下載器用法詳解

    在本篇內(nèi)容里小編給各位整理的是一篇關(guān)于python爬蟲中的url下載器用法詳解內(nèi)容,需要的朋友們參考下。
    2020-11-11

最新評論