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

利用Python實現(xiàn)從PDF到CSV的轉(zhuǎn)換

 更新時間:2024年07月08日 11:10:11   作者:Eiceblue  
將PDF轉(zhuǎn)換為CSV極大地提升了數(shù)據(jù)的實用價值,Python作為一種強大的編程語言,能夠高效完成這一轉(zhuǎn)換任務(wù),本文將介紹如何利用Python實現(xiàn)從PDF到CSV的轉(zhuǎn)換,需要的朋友可以參考下

引言

數(shù)據(jù)的可訪問性和可操作性是數(shù)據(jù)管理的核心要素。PDF格式因其跨平臺兼容性和版面固定性,在文檔分享和打印方面表現(xiàn)出色,尤其適用于報表、調(diào)查結(jié)果等數(shù)據(jù)的存儲。然而,PDF的非結(jié)構(gòu)化特性限制了其在數(shù)據(jù)分析領(lǐng)域的應(yīng)用。相比之下,CSV格式以其簡單、通用且易于處理的特點,成為數(shù)據(jù)操作和分析的理想選擇。

將PDF轉(zhuǎn)換為CSV極大地提升了數(shù)據(jù)的實用價值。Python作為一種強大的編程語言,能夠高效完成這一轉(zhuǎn)換任務(wù)。本文將介紹如何利用Python實現(xiàn)從PDF到CSV的轉(zhuǎn)換。

本文所使用的方法需要用到Spire.PDF for Python,PyPI:pip install Spire.PDF。

將PDF表格數(shù)據(jù)轉(zhuǎn)換為CSV文件

CSV作為一種結(jié)構(gòu)化的通用表格文件,支持以簡單的形式儲存表格數(shù)據(jù),但不支持復(fù)雜的格式設(shè)置以及復(fù)雜的表格信息。因此,我們在轉(zhuǎn)換PDF文檔為CSV文件時,通常只轉(zhuǎn)換PDF文檔中的表格為CSV文件。

庫中提供了PdfTableExtractor類來處理PDF文檔表格的提取操作,并且支持獲取表格單個單元格的文本。利用這些類和方法,我們就可以實現(xiàn)從PDF表格到CSV文件的轉(zhuǎn)換。

以下是操作步驟:

  1. 導(dǎo)入所需模塊。
  2. 創(chuàng)建PdfDocument對象。
  3. PdfDocument.LoadFromFile()方法載入PDF文檔。
  4. 創(chuàng)建PdfTableExtractor對象以處理表格提取操作。
  5. 循環(huán)PDF文檔中的頁面:
    • 使用PdfTableExtractor.ExtractTable()方法提取當(dāng)前頁面的表格為一個集合。
    • 遍歷集合中的表格:
      • 獲取表格行數(shù)和列數(shù)。
      • 遍歷行、列:
        • 使用Utilities_PdfTable.GetText()方法獲取單元格數(shù)據(jù)。
        • 將數(shù)據(jù)儲存為列表。
    • 使用csv模塊將表格數(shù)據(jù)寫入CSV文件。
  6. 釋放資源。

代碼示例

from spire.pdf import PdfDocument, PdfTableExtractor
import csv

# 創(chuàng)建一個 PdfDocument 實例
pdf = PdfDocument()

# 加載 PDF 文檔
pdf.LoadFromFile("示例.pdf")

# 創(chuàng)建一個 PdfTableExtractor 實例
extractor = PdfTableExtractor(pdf)

# 遍歷 PDF 文檔的每一頁
for i in range(pdf.Pages.Count):
    # 提取當(dāng)前頁的表格
    tables = extractor.ExtractTable(i)
    # 遍歷表格
    for j in range(len(tables)):
        table = tables[j]
        tableData = []
        # 獲取行數(shù)和列數(shù)
        rowCount = table.GetRowCount()
        colCount = table.GetColumnCount()
        # 遍歷行和列
        for row in range(rowCount):
            rowData = []
            for col in range(colCount):
                # 獲取單元格的文本
                text = table.GetText(row, col)
                text = text.replace("\n", "").replace("\r", "")
                rowData.append(text)
            tableData.append(rowData)
        # 將表格數(shù)據(jù)保存到 CSV 文件
        with open(f"output/Tables/Table{i+1}_{j+1}.csv", "w", newline="", encoding="utf-8") as csvFile:
            writer = csv.writer(csvFile)
            writer.writerows(tableData)

# 釋放資源
pdf.Dispose()

轉(zhuǎn)換結(jié)果

本文演示了如何使用Spire.PDF for Python將PDF表格轉(zhuǎn)換為CSV文件。

到此這篇關(guān)于利用Python實現(xiàn)從PDF到CSV的轉(zhuǎn)換的文章就介紹到這了,更多相關(guān)Python實現(xiàn)PDF轉(zhuǎn)CSV內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • python實現(xiàn)共軛梯度法

    python實現(xiàn)共軛梯度法

    這篇文章主要介紹了python實現(xiàn)的共軛梯度法,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-07-07
  • 對python中raw_input()和input()的用法詳解

    對python中raw_input()和input()的用法詳解

    下面小編就為大家分享一篇對python中raw_input()和input()的用法詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-04-04
  • TensorFlow的reshape操作 tf.reshape的實現(xiàn)

    TensorFlow的reshape操作 tf.reshape的實現(xiàn)

    這篇文章主要介紹了TensorFlow的reshape操作 tf.reshape的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-04-04
  • python之matplotlib學(xué)習(xí)繪制動態(tài)更新圖實例代碼

    python之matplotlib學(xué)習(xí)繪制動態(tài)更新圖實例代碼

    這篇文章主要介紹了python之matplotlib學(xué)習(xí)繪制動態(tài)更新圖實例代碼,文中涉及具體實現(xiàn)代碼,演示效果及運行時出現(xiàn)的問題分析等相關(guān)內(nèi)容,小編覺得還是挺不錯的,這里分享給大家,需要的朋友可以參考下
    2018-01-01
  • Python NaN空值的處理示例詳解

    Python NaN空值的處理示例詳解

    這篇文章主要介紹了Python NaN空值的處理,通過本文的介紹,對Python去掉數(shù)組中的空值NaN有了更加深入的了解,在實際的數(shù)據(jù)分析工作中,我們可以根據(jù)具體的情況選擇合,需要的朋友可以參考下
    2023-11-11
  • python編寫五子棋游戲

    python編寫五子棋游戲

    這篇文章主要為大家詳細介紹了python編寫五子棋游戲,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-05-05
  • python交互式圖形編程實例(二)

    python交互式圖形編程實例(二)

    這篇文章主要為大家詳細介紹了python交互式圖形編程實例,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-11-11
  • python編程學(xué)習(xí)np.float 被刪除的問題解析

    python編程學(xué)習(xí)np.float 被刪除的問題解析

    這篇文章主要為大家介紹了python編程學(xué)習(xí)np.float 被刪除的問題解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-02-02
  • python實現(xiàn)多進程并發(fā)控制Semaphore與互斥鎖LOCK

    python實現(xiàn)多進程并發(fā)控制Semaphore與互斥鎖LOCK

    本文主要介紹了python實現(xiàn)多進程并發(fā)控制Semaphore與互斥鎖LOCK,通過實例來介紹互斥鎖和進程并發(fā)控制 semaphore的具體使用,感興趣的同學(xué)可以了解一下
    2021-05-05
  • 使用Python Pandas處理億級數(shù)據(jù)的方法

    使用Python Pandas處理億級數(shù)據(jù)的方法

    這篇文章主要介紹了使用Python Pandas處理億級數(shù)據(jù)的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-06-06

最新評論