盤點一個批量提取pdf檔案目標資訊的實用案例
阿新 • • 發佈:2022-12-04
大家好,我是皮皮。
一、前言
前幾天在幫助粉絲解決問題的時候,遇到一個簡單的小需求,需要批量提取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
檔案目標資訊的實用案例,文中針對該問題,給出了具體的解析和程式碼實現,幫助粉絲順利解決了問題。