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

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

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

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

1. 使用 PyPDF2 提取純文本

PyPDF2 是一個輕量級但功能強(qiáng)大的庫,適合用于讀取和提取標(biāo)準(zhǔn)文本型 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)

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

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

如果你需要提取含有表格、列布局或精確坐標(biāo)信息的 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)

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

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

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

1. 安裝依賴項

你需要安裝 Tesseract OCR 引擎以及對應(yīng)的 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. 示例代碼:結(jié)合 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ì)量掃描件。

三、總結(jié)與建議

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

建議:

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

四、擴(kuò)展功能推薦

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

結(jié)語

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

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

相關(guān)文章

  • Python 分發(fā)包中添加額外文件的方法

    Python 分發(fā)包中添加額外文件的方法

    這篇文章主要介紹了Python 分發(fā)包中添加額外文件的方法,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-08-08
  • 使用 Python 實現(xiàn)微信公眾號粉絲遷移流程

    使用 Python 實現(xiàn)微信公眾號粉絲遷移流程

    近日,因公司業(yè)務(wù)需要,需將原兩個公眾號合并為一個,即要將其中一個公眾號(主要是粉絲)遷移到另一個公眾號。這篇文章主要介紹了使用 Python 實現(xiàn)微信公眾號粉絲遷移,需要的朋友可以參考下
    2018-01-01
  • python實現(xiàn)兩個文件夾的同步

    python實現(xiàn)兩個文件夾的同步

    這篇文章主要為大家詳細(xì)介紹了利用python實現(xiàn)兩個文件夾的同步,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-08-08
  • 使用opencv中匹配點對的坐標(biāo)提取方式

    使用opencv中匹配點對的坐標(biāo)提取方式

    這篇文章主要介紹了使用opencv中匹配點對的坐標(biāo)提取方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-06-06
  • Python加載帶有注釋的Json文件實例

    Python加載帶有注釋的Json文件實例

    今天小編就為大家分享一篇Python加載帶有注釋的Json文件實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-05-05
  • python多次繪制條形圖的方法

    python多次繪制條形圖的方法

    這篇文章主要為大家詳細(xì)介紹了python多次繪制條形圖的方法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-04-04
  • django中的auth模塊與admin后臺管理方法

    django中的auth模塊與admin后臺管理方法

    這篇文章主要介紹了django中的auth模塊與admin后臺管理方法,包括auth模塊的常用方法及如何擴(kuò)展auth_user表,本文通過實例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2022-09-09
  • python數(shù)據(jù)庫批量插入數(shù)據(jù)的實現(xiàn)(executemany的使用)

    python數(shù)據(jù)庫批量插入數(shù)據(jù)的實現(xiàn)(executemany的使用)

    這篇文章主要介紹了python數(shù)據(jù)庫批量插入數(shù)據(jù)的實現(xiàn)(executemany的使用),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-04-04
  • 詳解使用Selenium爬取豆瓣電影前100的愛情片相關(guān)信息

    詳解使用Selenium爬取豆瓣電影前100的愛情片相關(guān)信息

    這篇文章主要介紹了詳解使用Selenium爬取豆瓣電影前100的愛情片相關(guān)信息,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-03-03
  • 利用python繪制線型圖

    利用python繪制線型圖

    這篇文章主要介紹了利用python繪制線型圖,文章圍繞主題的相關(guān)資料展開詳細(xì)的內(nèi)容介紹,具有一定的參考價值,感興趣的下伙伴可以參考一下
    2022-06-06

最新評論