1. 程式人生 > 其它 >盤點一個批量提取pdf檔案目標資訊的實用案例

盤點一個批量提取pdf檔案目標資訊的實用案例

大家好,我是皮皮。

一、前言

前幾天在幫助粉絲解決問題的時候,遇到一個簡單的小需求,需要批量提取pdf檔案目標資訊,這裡拿出來跟大家一起分享,後面再次遇到的時候,可以從這裡得到靈感。

二、需求澄清

下面他下載的pdf檔案,有幾百個檔案,這裡拿出部分做示例,每個pdf檔案裡邊有一個統一社會信用程式碼,後面的數字和字元是他的目標資訊,需要提取出來。

三、實現過程

這裡實現主要借用了pdf檔案讀取庫和正則表示式來提取,先給出單個pdf檔案提取的方法,程式碼如下所示:

from pdfminer import high_level
import re

text = high_level.extract_text('1.pdf')  # 提取pdf中的文字資訊
# print(text)
regex = r'統一社會信用程式碼:(.*?)\n'
xinyongcode = re.findall(regex, text)
print(xinyongcode)

有了前面的程式碼打底之後,接下來就可以實現批量處理了,程式碼如下所示:

from pdfminer import high_level
from pdfminer.layout import LTTextContainer  # 文字容器
import re
import os

for root, dirs, files in os.walk('./'):
    # root 表示當前正在訪問的資料夾路徑; dirs 表示該資料夾下的子目錄名list;files 表示該資料夾下的檔案list
    # 遍歷檔案
    for f in files:
        file_name = os.path.join(root, f)
        if file_name.endswith('.pdf'):
            text = high_level.extract_text(file_name)  # 提取pdf中的文字資訊
            regex = r'統一社會信用程式碼:(.*?)\n'
            xinyongcode = re.findall(regex, text)
            print(xinyongcode[0])

程式碼執行之後,可以依次得到所有檔案攜帶的目標資訊,如下圖所示:

剩下的工作就不多贅述了,大家自行考慮即可。

三、總結

大家好,我是皮皮。這篇文章主要盤點一個批量提取pdf檔案目標資訊的實用案例,文中針對該問題,給出了具體的解析和程式碼實現,幫助粉絲順利解決了問題。