最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

使用Python提取PDF文件中內(nèi)容的代碼示例和使用技巧

 更新時間:2025年07月10日 10:26:01   作者:行云流水劍  
在文檔自動化處理、數(shù)據(jù)提取和信息分析等任務中,從 PDF 文件中提取文本是一項常見需求,PDF 文件通常分為兩種類型:基于文本的 PDF 和 包含掃描圖像的 PDF,本文將介紹如何使用 Python 分別提取這兩種類型的 PDF 內(nèi)容,需要的朋友可以參考下

一、提取基于文本的 PDF 內(nèi)容

1. 使用 PyPDF2 提取純文本

PyPDF2 是一個輕量級但功能強大的庫,適合用于讀取和提取標準文本型 PDF 中的內(nèi)容。

安裝

pip install PyPDF2

示例代碼

import PyPDF2

def extract_text_from_pdf(pdf_path):
    with open(pdf_path, 'rb') as file:
        reader = PyPDF2.PdfReader(file)
        text = ""
        for page in reader.pages:
            text += page.extract_text()
        return text

# 使用示例
pdf_path = 'example.pdf'
extracted_text = extract_text_from_pdf(pdf_path)
print(extracted_text)

注意:對于格式復雜或字體嵌入的 PDF,某些頁面可能無法正確提取文本。

2. 使用 pdfplumber 提取表格和布局復雜的文本

如果你需要提取含有表格、列布局或精確坐標信息的 PDF,pdfplumber 是更合適的選擇。

安裝

pip install pdfplumber

示例代碼

import pdfplumber

def extract_text_from_pdf(pdf_path):
    with pdfplumber.open(pdf_path) as pdf:
        text = ""
        for page in pdf.pages:
            text += page.extract_text()
        return text

# 使用示例
pdf_path = 'example.pdf'
extracted_text = extract_text_from_pdf(pdf_path)
print(extracted_text)

特點:支持表格識別、文字坐標定位等功能。

二、提取掃描圖像型 PDF 內(nèi)容(OCR)

對于由掃描圖片組成的 PDF 文件,必須借助 光學字符識別(OCR)技術 來提取其中的文字。

1. 安裝依賴項

你需要安裝 Tesseract OCR 引擎以及對應的 Python 封裝庫。

Windows:

  • 下載并安裝 Tesseract OCR
  • 添加 Tesseract 到系統(tǒng)環(huán)境變量(例如路徑為 C:\Program Files\Tesseract-OCR\tesseract.exe
  • 安裝 Python 庫:
pip install pytesseract pillow pdf2image
  • 安裝 Poppler(用于將 PDF 轉(zhuǎn)換為圖像):

Linux / macOS:

sudo apt install tesseract-ocr libpoppler-cpp-dev  # Ubuntu/Debian
brew install tesseract poppler                    # macOS (Homebrew)
pip install pytesseract pillow pdf2image

2. 示例代碼:結合 pdf2image + pytesseract 提取掃描 PDF 內(nèi)容

from pdf2image import convert_from_path
import pytesseract
from PIL import Image

def extract_text_from_scanned_pdf(pdf_path):
    # 將 PDF 轉(zhuǎn)換為圖像列表
    images = convert_from_path(pdf_path)

    extracted_text = ""
    for image in images:
        # 對每張圖片執(zhí)行 OCR
        text = pytesseract.image_to_string(image)
        extracted_text += text + "\n"

    return extracted_text

# 使用示例
pdf_path = 'scanned_example.pdf'
text = extract_text_from_scanned_pdf(pdf_path)
print(text)

說明:該方法會逐頁將 PDF 轉(zhuǎn)換為圖像,再通過 OCR 提取文字,適用于高質(zhì)量掃描件。

三、總結與建議

PDF 類型推薦庫特點
純文本型 PDFPyPDF2 或 pdfplumber快速、高效,適合標準 PDF 文檔
掃描圖像型 PDFpdf2image + pytesseract支持 OCR,適合圖像型 PDF,但速度較慢

建議:

  • 優(yōu)先判斷 PDF 類型:可以嘗試用 PyPDF2 提取看看是否有返回內(nèi)容,若為空則可能是掃描圖像。
  • 提高 OCR 準確率:可先對圖像進行預處理(如灰度化、二值化),再傳給 pytesseract。
  • 多語言支持:Tesseract 支持多種語言包,可通過 -l 參數(shù)指定語言,如 pytesseract.image_to_string(img, lang='chi_sim') 提取中文。

四、擴展功能推薦

功能工具描述
表格識別camelot 或 tabula-py專門用于提取 PDF 中表格數(shù)據(jù)
PDF 加密破解pikepdf可用于打開加密 PDF 文件(需密碼)
PDF 合并與拆分PyPDF2 / pypdf拆分、合并、旋轉(zhuǎn) PDF 頁面
PDF 注釋提取pdfminer.six提供底層解析能力,適合高級用途

結語

無論是處理普通的文本型 PDF 還是掃描圖像型 PDF,Python 都提供了豐富的第三方庫來幫助我們實現(xiàn)高效的文本提取。掌握這些工具不僅能提升辦公效率,還能為數(shù)據(jù)分析、文檔管理、信息自動化等場景打下堅實基礎。

以上就是使用Python提取PDF文件中內(nèi)容的代碼示例和使用技巧的詳細內(nèi)容,更多關于Python提取PDF文件內(nèi)容的資料請關注腳本之家其它相關文章!

相關文章

  • python實戰(zhàn)之實現(xiàn)excel讀取、統(tǒng)計、寫入的示例講解

    python實戰(zhàn)之實現(xiàn)excel讀取、統(tǒng)計、寫入的示例講解

    下面小編就為大家分享一篇python實戰(zhàn)之實現(xiàn)excel讀取、統(tǒng)計、寫入的示例講解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-05-05
  • Python中常見的矩陣運算詳解

    Python中常見的矩陣運算詳解

    這篇文章主要介紹了Python中常見的矩陣運算詳解,所謂的數(shù)據(jù)處理,其本質(zhì)大都可以歸為矩陣運算,因為需要處理的數(shù)據(jù)大都是矩陣或向量的形式,一個工具適不適合做數(shù)據(jù)處理,一個重要的指標的就是支不支持矩陣運算,需要的朋友可以參考下
    2023-08-08
  • 使用python3批量下載rbsp數(shù)據(jù)的示例代碼

    使用python3批量下載rbsp數(shù)據(jù)的示例代碼

    這篇文章主要介紹了使用python3批量下載rbsp數(shù)據(jù)的示例代碼,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-12-12
  • 淺談pytorch卷積核大小的設置對全連接神經(jīng)元的影響

    淺談pytorch卷積核大小的設置對全連接神經(jīng)元的影響

    今天小編就為大家分享一篇淺談pytorch卷積核大小的設置對全連接神經(jīng)元的影響,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-01-01
  • 關于TensorFlow新舊版本函數(shù)接口變化詳解

    關于TensorFlow新舊版本函數(shù)接口變化詳解

    今天小編就為大家分享一篇關于TensorFlow新舊版本函數(shù)接口變化詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-02-02
  • Python 測試框架unittest和pytest的優(yōu)劣

    Python 測試框架unittest和pytest的優(yōu)劣

    這篇文章主要介紹了Python 測試框架unittest和pytest的優(yōu)劣,幫助大家更好的進行python程序的測試,感興趣的朋友可以了解下
    2020-09-09
  • 詳解Python中的正則表達式

    詳解Python中的正則表達式

    正則表達式是一個特殊的字符序列,它能幫助你方便的檢查一個字符串是否與某種模式匹配。本文給大家?guī)砹藀ython中的正則表達式,感興趣的朋友一起看看吧
    2018-07-07
  • 在Django框架中偽造捕捉到的URLconf值的方法

    在Django框架中偽造捕捉到的URLconf值的方法

    這篇文章主要介紹了在Django框架中偽造捕捉到的URLconf值的方法,Django是Python各色人氣框架中最為著名的一個,需要的朋友可以參考下
    2015-07-07
  • Python利用flask sqlalchemy實現(xiàn)分頁效果

    Python利用flask sqlalchemy實現(xiàn)分頁效果

    這篇文章主要為大家詳細介紹了利用flask sqlalchemy實現(xiàn)分頁效果,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-07-07
  • python入門教程 python入門神圖一張

    python入門教程 python入門神圖一張

    這篇文章主要介紹了Python 10分鐘入門教程,分享一張Python入門神圖一張,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-03-03

最新評論

临朐县| 花莲县| 大余县| 合江县| 吴旗县| 富平县| 三穗县| 奎屯市| 隆昌县| 兴文县| 凤凰县| 永春县| 宁津县| 乐业县| 宣武区| 五河县| 象州县| 襄城县| 鹤岗市| 都兰县| 修文县| 日照市| 海伦市| 平泉县| 和政县| 岳池县| 芜湖县| 手游| 龙游县| 泰宁县| 富裕县| 绥滨县| 蓬溪县| 临漳县| 南安市| 西和县| 新郑市| 彭阳县| 灵丘县| 临高县| 阜康市|