pypdf2讀取pdf中的表格,pypdf2文檔

本文目錄一覽:

用python批量提取pdf的表格數據,保存為excel

pdfplumber 是一個開源 python 工具庫-,可以方便地獲取 pdf 的各種信息,包括文本、表格、圖表、尺寸等。完成我們本文的需求,主要使用 pdfplumber 提取 pdf 表格數據。

python 中還有很多庫可以處理 pdf,比如 PyPDF2、pdfminer 等,本文選擇pdfplumber 的原因在於能輕鬆訪問有關 PDF 的所有詳細信息,包括作者、來源、日期等,並且用於提取文本和表格的方法靈活可定製。大家可以根據手頭數據需求,再去解鎖 pdfplumber 的更多用法。

Python利器:如何處理PDF表格數據

大家好,我是Peter~

在很多情況下,我們都需要處理PDF格式的文件。尤其當我們遇到PDF表格數據需要進行提取,真的是一個令人頭疼的問題。

因為PDF文件不能像Word那樣直接複製,即使複製了再黏貼也可能會出現格式排版錯亂甚至亂碼問題。如何從一個PDF文件提取出表格數據?本文提供兩個解決方案:

首先提供的一種方法是從文字 PDF 中提取表格信息的工具:Camelot,它能夠直接將大部分表格轉換為 Pandas 的 Dataframe。

更多的詳細信息,請參考項目地址:

camelot的安裝有多種方式。如果有報錯,網上一般有解決方式:

1、通過conda安裝

2、使用pip進行安裝

3、通過GitHub進行安裝

首先將項目複製到本地:

然後進入文件中進行安裝:

下面通過一個案例來講解如何使用camelot。假設我們現在有一個只有一頁的PDF文件test.pdf:

1、先讀取文件

導出成csv格式的數據(方式1)

查看tables的相關信息:

導出方式2:

將數據轉換成DataFrame:

tabula的功能比camelot更加強大,可以同時對多個表格數據進行提取。項目的具體地址請參考:

tabula的安裝是非常簡單的:

安裝之後檢驗這個庫是否安裝成功:

通過tabula這個庫來讀取PDF文件:

然後我們發現列表中唯一的一個元素就是dataframe:

將讀取到的數據輸出成CSV格式的文件:

上面讀取的PDF文件是比較簡單的,只有一頁,而且剛好是一個很標準的表格形式的數據,下面看一個比較複雜的例子:

下面是第一頁,第一列可以看成是索引:

在第二頁中有兩份表格,而且中間有很多的空白行:

第三頁的數據比較標準:

這3頁是在同一個PDF文件中,這3頁是在同一個PDF文件中,這3頁是在同一個PDF文件中

上面的紅色提示中我們看到:當沒有指定pages參數的時候,只會默認讀取第一頁的數據,所以列表的長度為1。

轉成dataframe後將原來的索引變成新的一列 (部分數據)

通過pages來讀取全部數據:

通過指定pages=”all”:

同時獲取兩個表格的數據:

通過area參數來指定:

刪除在讀取的表格中我們不需要的欄位信息

可以將得到的數據輸出成不同格式的文件,以json格式為例:

我們可以看到

python怎樣讀取pdf文件的內容

1、首先要下載一個處理pdf的組件pdfminer,百度搜索去官網下載

2、下載完成解壓以後,打開cmd進入用命令安裝。python setup.py install 進行安裝

3、我們來測試一下是否安裝成功了,引入這個模塊,運行一下代碼,沒有報錯就說明安裝成功了

4、官網有文檔也有代碼示例

from pdfminer.pdfparser import PDFParser

from pdfminer.pdfdocument import PDFDocument

from pdfminer.pdfpage import PDFPage

from pdfminer.pdfpage import PDFTextExtractionNotAllowed

from pdfminer.pdfinterp import PDFResourceManager

from pdfminer.pdfinterp import PDFPageInterpreter

from pdfminer.pdfdevice import PDFDevice

fp = open(‘mypdf.pdf’, ‘rb’)

#創建一個PDF文檔解析器對象

parser = PDFParser(fp)

#創建一個PDF文檔對象存儲文檔結構

#提供密碼初始化,沒有就不用傳該參數

document = PDFDocument(parser, password)

#檢查文件是否允許文本提取

if not document.is_extractable:

raise PDFTextExtractionNotAllowed

#創建一個PDF資源管理器對象來存儲共享資源

rsrcmgr = PDFResourceManager()

#創建一個pdf設備對象

device = PDFDevice(rsrcmgr)

#創建一個PDF解析器對象

interpreter = PDFPageInterpreter(rsrcmgr, device)

#處理文檔當中的每個頁面

for page in PDFPage.create_pages(document):

interpreter.process_page(page)

5、我新建一個pdf,新輸入一些內容

6、運行一下代碼即可

有沒有好一點的讀取pdf的python包

最近在做一些數據分析的任務,很多都是pdf文件,試過pdfminer,pypdf2。pdfminer可以較好地讀出裡面的文字內容,但是一旦碰到類似於表格的排版,就會分塊按列來讀,導致解析出來的結果排班很亂。比如下面圖片中的內容

解析出來是:

教育背景

2011.09-2015.06

重慶大學

工作經歷

軟體工程

而我預期的是:

教育背景

2011.09-2015.06  重慶大學  軟體工程

工作經歷

pypdf2效果更一般,很多中文字和符號都不能識別。Textract,Tika我也試過,都不行。請問大家有沒有更好的python PDF包呢?或者是我的處理方式不對?我的代碼如下:

from pdfminer.pdfinterp import PDFResourceManager, process_pdf

from pdfminer.converter import TextConverter

from pdfminer.layout import LAParams

from io import StringIO

from io import open

from subprocess import call

def readPDF(pdfFile):

rsrcmgr = PDFResourceManager()

retstr = StringIO()

laparams = LAParams()

device = TextConverter(rsrcmgr, retstr, laparams=laparams)

process_pdf(rsrcmgr, device, pdfFile, check_extractable=True)

device.close()

content = retstr.getvalue()

retstr.close()

return content

你可以試一下在線pdf裝換試試效果

效果好的話用再 selenium 來處理

在用其他包轉你需要的

我覺得你的那個包不好用是不是因為沒有那種字體啊?

原創文章,作者:IUHJA,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/316900.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
IUHJA的頭像IUHJA
上一篇 2025-01-09 12:15
下一篇 2025-01-09 12:15

相關推薦

  • Python基礎教程第三版PDF下載

    熟練掌握Python編程語言可以讓你輕鬆地用代碼解決很多問題,Python基礎教程第三版是一本適合初學者的Python教程。本文將從幾個方面詳細介紹Python基礎教程第三版PDF…

    編程 2025-04-29
  • 使用Treeview顯示錶格

    在web開發中,顯示錶格數據是一項很常見的需求。當我們需要在頁面上顯示大量數據時,除了使用傳統的表格樣式外,還可以使用Treeview這種可摺疊的表格樣式,以便更好地展示數據。本文…

    編程 2025-04-29
  • 使用Spire.PDF進行PDF文檔處理

    Spire.PDF是一款C#的PDF庫,它可以幫助開發者快速、簡便地處理PDF文檔。本篇文章將會介紹Spire.PDF庫的一些基本用法和常見功能。 一、PDF文檔創建 創建PDF文…

    編程 2025-04-29
  • Python零基礎PDF下載

    本文將為大家介紹如何使用Python下載PDF文件,適合初學者上手實踐。 一、安裝必要的庫 在Python中,我們需要使用urllib和requests庫來獲取PDF文件的鏈接,並…

    編程 2025-04-29
  • Python根據表格數據生成折線圖

    本文將介紹如何使用Python根據表格數據生成折線圖。折線圖是一種常見的數據可視化圖表形式,可以用來展示數據的趨勢和變化。Python是一種流行的編程語言,其強大的數據分析和可視化…

    編程 2025-04-29
  • Python 圖片轉表格

    本文將詳細介紹如何使用Python將圖片轉為表格。大家平時在處理一些資料的時候難免會遇到圖片轉表格的需求。比如從PDF文檔中提取表格等場景。當然,這個功能也可以通過手動複製、粘貼,…

    編程 2025-04-29
  • 智能風控 Python金融風險PDF

    在金融交易領域,風險控制是一項重要任務。智能風控是指通過人工智慧技術和演算法模型,對金融交易進行風險識別、風險預警、風險控制等操作。Python是一種流行的編程語言,具有方便、易用、…

    編程 2025-04-29
  • Python編程與數據分析應用PDF

    Python編程是一門功能強大的編程語言,其易讀易寫、可擴展性強等優點使得它在各個領域都有著廣泛的應用。而數據分析也是當今各行各業的基本需求,Python語言通過優秀的數據分析庫也…

    編程 2025-04-28
  • Python語言設計基礎第2版PDF

    Python語言設計基礎第2版PDF是一本介紹Python編程語言的經典教材。本篇文章將從多個方面對該教材進行詳細的闡述和介紹。 一、基礎知識 本教材中介紹了Python編程語言的…

    編程 2025-04-28
  • python爬取網頁並生成表格

    本文將從以下幾個方面詳細介紹如何使用Python爬取網頁數據並生成表格: 一、獲取網頁數據 獲取網頁數據的一般思路是通過HTTP請求獲取網頁內容,最常用的方式是使用Python庫r…

    編程 2025-04-28

發表回復

登錄後才能評論