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

Python提取Pdf文件內(nèi)容的操作方法(表格、文本、圖片)

 更新時(shí)間:2025年03月25日 09:27:57   作者:老胖閑聊  
本文主要介紹了Python提取PDF內(nèi)容的方法(文本、圖像、表格),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

Pdf文件是我們?nèi)粘9ぷ髦薪?jīng)常會(huì)遇到的一種文件格式,對(duì)于這種文件的提取 pdfplumber  庫(kù)可以非常出色的完成處理工作,它是一個(gè)純 Python 第三方庫(kù),適合 python 3.x 版本,通常用來(lái)查看pdf各類信息,能有效提取文本、表格,但不支持修改或生成pdf,也不支持對(duì)pdf掃描件的處理。下面就出表格、文本和圖片的提取三方面進(jìn)行說(shuō)明。

1、表格提?。?/h2>

下面是提取PDF文件內(nèi)容中的表格,并保存到XLSX文件中,代碼如下:

import pdfplumber
from openpyxl import load_workbook
import pandas as pd
 
i=0
with pdfplumber.open("d:\\待提取的PDF文件.pdf") as pdf:
    print(len(pdf.pages))
    for page in pdf.pages:
        tables=page.extract_tables()
        for table in tables:
            i=i+1
            df = pd.DataFrame(table)
            df.to_excel(f'd:\\output{i}.xlsx', index=False)
 
def readExcels(excelname):
    alldata = pd.DataFrame()
    wb = load_workbook(excelname)
    sheets = wb.sheetnames
    for i in sheets:
        #print(i)
        df = pd.read_excel(excelname,sheet_name=i,engine='openpyxl',header=1)
        alldata = alldata._append(df)

2、文本提?。?/h2>

下面是提取PDF文件內(nèi)容中的文字內(nèi)容,并保存到txt文件中,代碼如下:

import os
from pathlib import Path
import pdfplumber
 
def extract_text(pdf_path):
    with pdfplumber.open(pdf_path) as pdf:
        text = ""
        for page in pdf.pages:
            text += page.extract_text() + "\n"
    return text
 
# 使用示例
pdf_path_name = "d:\\待提取PDF文件.pdf"
pdf_dirname = os.path.dirname(pdf_path_name)
extracted_text = extract_text(pdf_path_name)
with open(f'{pdf_dirname}/{Path(pdf_path_name).stem}.txt', 'w', encoding='utf-8') as f:
    f.write(extracted_text)
    f.close()
print(f'執(zhí)行完畢!輸出路徑:{pdf_dirname}')

3、提取圖片:

下面是提取PDF文件內(nèi)容中的圖片,并創(chuàng)建目錄保存,代碼如下:

import pdfplumber
import os
 
# 定義函數(shù)用于提取PDF中的圖片并保存
def extract_images_from_pdf(pdf_file, output_folder):
    # 創(chuàng)建輸出文件夾,如果不存在的話
    if not os.path.exists(output_folder):
        os.makedirs(output_folder)
 
    with pdfplumber.open(pdf_file) as pdf:
        # 遍歷每一頁(yè)
        for page_number, page in enumerate(pdf.pages, start=1):
            print(f'頁(yè)碼:{page.page_number}')
            print(f'頁(yè)面寬度:{page.width}')
            print(f'頁(yè)面高度:{page.height}')
 
            # 獲取該頁(yè)的所有圖片
            images = page.images
 
            # 遍歷該頁(yè)的所有圖片
            for idx, image in enumerate(images, start=1):
                # 獲取圖片的二進(jìn)制數(shù)據(jù)
                image_data = image['stream'].get_data()
 
                # 構(gòu)建圖片文件名
                image_filename = os.path.join(output_folder, f'image_{page_number}_{idx}.png')
 
                # 保存圖片到文件
                with open(image_filename, 'wb') as f:
                    f.write(image_data)
                    print(f'圖片已保存至:{image_filename}')
 
# 調(diào)用方法
pdf_file = 'd:\\待提取的PDF文件.pdf'
output_folder = 'extracted_images'
extract_images_from_pdf(pdf_file, output_folder)

拓展:python提取pdf文件文字(OCR)

一、引用的庫(kù)

import pdfplumber

確保已安裝以上的庫(kù),不然運(yùn)行會(huì)報(bào)錯(cuò)

#安裝庫(kù)可以用清華的鏡像網(wǎng)站(可能會(huì)更新,可以上官網(wǎng)查詢地址)

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple some-package

二、提取文字

def pdf_to_text(pdf_path):
    """
    從 PDF 文件中提取文本內(nèi)容。
    Args:
        pdf_path (str): PDF 文件的路徑。
    Returns:
        str: 提取的文本內(nèi)容。
    """
    text = ''
    # 打開PDF文件
    with pdfplumber.open(pdf_path) as pdf:
        # 遍歷每一頁(yè)
        for page in pdf.pages:
            # 提取文本,并添加到text變量中
            text += page.extract_text()
 
    # 移除文本中的換行符(根據(jù)需求設(shè)置)
    text = text.replace('\n', '')
 
    return text

其中'yourfile'替換成你的文件的地址。

三、保存文字

def savewords():
    """
    將 PDF 文件中提取的文本保存到文本文件中。
    """
    # 輸入PDF文件路徑
    pdf_path = 'yourfile'
    # 調(diào)用pdf_to_text函數(shù)進(jìn)行文字提取
    extracted_text = pdf_to_text(pdf_path)
 
    # 將提取的文字寫入到txt文件中
    with open('extracted_text.txt', 'w', encoding='utf-8') as file:
        file.write(extracted_text)
    print("Text extracted successfully!")

注意,保存文字和提取文字是不可分割的兩個(gè)“方法”,在寫代碼時(shí)要一起復(fù)制粘貼。此處分開是為了容易理解

四、運(yùn)行

if __name__ == "__main__":
    savewords()

總結(jié)

import pdfplumber
def pdf_to_text(pdf_path):
    """
    從 PDF 文件中提取文本內(nèi)容。
    Args:
        pdf_path (str): PDF 文件的路徑。
    Returns:
        str: 提取的文本內(nèi)容。
    """
    text = ''
    # 打開PDF文件
    with pdfplumber.open(pdf_path) as pdf:
        # 遍歷每一頁(yè)
        for page in pdf.pages:
            # 提取文本,并添加到text變量中
            text += page.extract_text()
 
    # 移除文本中的換行符(根據(jù)需求設(shè)置)
    text = text.replace('\n', '')
 
    return text
 
def savewords():
    """
    將 PDF 文件中提取的文本保存到文本文件中。
    """
    # 輸入PDF文件路徑
    pdf_path = 'yourfile'
    # 調(diào)用pdf_to_text函數(shù)進(jìn)行文字提取
    extracted_text = pdf_to_text(pdf_path)
 
    # 將提取的文字寫入到txt文件中
    with open('extracted_text.txt', 'w', encoding='utf-8') as file:
        file.write(extracted_text)
    print("Text extracted successfully!")
 
if __name__ == "__main__":
    savewords()

到此這篇關(guān)于Python提取Pdf文件內(nèi)容的操作方法(表格、文本、圖片)的文章就介紹到這了,更多相關(guān)Python提取Pdf內(nèi)容內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python如何實(shí)現(xiàn)動(dòng)態(tài)數(shù)組

    Python如何實(shí)現(xiàn)動(dòng)態(tài)數(shù)組

    這篇文章主要介紹了Python如何實(shí)現(xiàn)動(dòng)態(tài)數(shù)組,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-11-11
  • Python竟然能剪輯視頻

    Python竟然能剪輯視頻

    平時(shí)我們?cè)谒⒍桃曨l或者看到一些視頻的時(shí)候,希望可以把視頻里面的音頻提取出來(lái)當(dāng)背景音樂究竟是怎么操作的呢,下面小編教大家python如何去提取一個(gè)視頻里面的音頻,感興趣的朋友一起看看吧
    2021-05-05
  • Python教程之基本運(yùn)算符的使用(上)

    Python教程之基本運(yùn)算符的使用(上)

    Python?運(yùn)算符通常用于對(duì)值和變量執(zhí)行操作。這些是用于邏輯和算術(shù)運(yùn)算的標(biāo)準(zhǔn)符號(hào)。在本文中,我們將研究不同類型的?Python?運(yùn)算符,感興趣的可以了解一下
    2022-09-09
  • Flask框架中request、請(qǐng)求鉤子、上下文用法分析

    Flask框架中request、請(qǐng)求鉤子、上下文用法分析

    這篇文章主要介紹了Flask框架中request、請(qǐng)求鉤子、上下文用法,結(jié)合實(shí)例形式分析了flask框架中request、請(qǐng)求鉤子及上下文的功能、用法及相關(guān)操作注意事項(xiàng),需要的朋友可以參考下
    2019-07-07
  • Python輕松讀寫TOML文件實(shí)現(xiàn)示例

    Python輕松讀寫TOML文件實(shí)現(xiàn)示例

    這篇文章主要介紹了Python輕松讀寫TOML文件實(shí)現(xiàn)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2024-01-01
  • Python FastAPI入門安裝使用

    Python FastAPI入門安裝使用

    FastAPI是一個(gè)現(xiàn)代、快速的Python Web框架,用于構(gòu)建API,它基于Python 3.6+的類型提示特性,使得代碼更加簡(jiǎn)潔且易于綬護(hù),這篇文章主要介紹了Python FastAPI入門安裝使用,需要的朋友可以參考下
    2025-03-03
  • Python使用matplotlib繪制圖形大全(曲線圖、條形圖、餅圖等)

    Python使用matplotlib繪制圖形大全(曲線圖、條形圖、餅圖等)

    matplotlib 是一個(gè)用于創(chuàng)建靜態(tài)、動(dòng)態(tài)和交互式可視化圖形的 Python 庫(kù),它被廣泛用于數(shù)據(jù)可視化,并且可以與多種操作系統(tǒng)和圖形后端一起工作,本文給大家介紹了Python使用matplotlib繪制圖形大全,需要的朋友可以參考下
    2024-06-06
  • Django nginx配置實(shí)現(xiàn)過(guò)程詳解

    Django nginx配置實(shí)現(xiàn)過(guò)程詳解

    這篇文章主要介紹了Django nginx配置實(shí)現(xiàn)過(guò)程詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-09-09
  • python的xpath獲取div標(biāo)簽內(nèi)html內(nèi)容,實(shí)現(xiàn)innerhtml功能的方法

    python的xpath獲取div標(biāo)簽內(nèi)html內(nèi)容,實(shí)現(xiàn)innerhtml功能的方法

    今天小編就為大家分享一篇python的xpath獲取div標(biāo)簽內(nèi)html內(nèi)容,實(shí)現(xiàn)innerhtml功能的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-01-01
  • python3使用libpcap庫(kù)進(jìn)行抓包及數(shù)據(jù)處理的操作方法

    python3使用libpcap庫(kù)進(jìn)行抓包及數(shù)據(jù)處理的操作方法

    這篇文章主要介紹了python3使用libpcap庫(kù)進(jìn)行抓包及數(shù)據(jù)處理,需要的朋友可以參考下
    2022-10-10

最新評(píng)論