1.目的:利用Python把檔案夾內所有的PDF檔案中的文本抓取到一個excel中
所有的pdf具有相同的格式
2.需要解決的問題:遍歷指定檔案夾中的所有pdf檔案,并把文本保存在excel的一行中,一個檔案中的內容保存在新的一行。
以下是目前的代碼,現在可以抓取一個指定PDF的文本至excel中,但需要解決檔案遍歷和Excel中行數隨新檔案的內容+1行寫入。
拜謝!!
============================================
import pdfplumber #決議pdf檔案,尤其帶有表格的檔案
from openpyxl import Workbook #讀寫Excel的檔案
def parse(pdf):
targets = [] #保存結果,
for page in pdf.pages:
words = page.extract_words(x_tolerance=5)
for word in words:
targets.append(word['text'])
return targets
#print(targets)
# 保存
def save(targets, out_path, sheet_name='targets'):
wb = Workbook()
ws = wb.active
ws.title = sheet_name
ws.append(targets)
print(ws)
#ws.append(list(targets.values()))
wb.save(out_path)
# 主函式入口
if __name__ == "__main__":
print(__doc__)
path = 'c:l/tax01.pdf'
out_path = 'c:/PDF_Inf-2.xlsx'
pdf = pdfplumber.open(path)
targets = parse(pdf)
save(targets, out_path)
print('運行結束!')
uj5u.com熱心網友回復:
Python的os有個函式可以自己遍歷目錄下所有檔案uj5u.com熱心網友回復:
解決了,謝謝! @jmzl.
==========================================
import pdfplumber #決議pdf檔案,尤其帶有表格的檔案
from openpyxl import Workbook #讀寫Excel的檔案
import os
def parse(pdf):
targets = [] #保存結果,
for page in pdf.pages:
words = page.extract_words(x_tolerance=5)
for word in words:
targets.append(word['text'])
return targets
#print(targets)
# 保存
def save(targets, out_path, sheet_name='targets'):
wb = Workbook()
ws = wb.active
ws.title = sheet_name
ws.append(targets)
#print(ws)
#ws.append(list(targets.values()))
wb.save(out_path)
# 主函式入口
if __name__ == "__main__":
print(__doc__)
path = 'output'
excelnumb=1
files= os.listdir(path)
#out_path = 'PDF_Inf-2.xlsx'
for file in files:
pdf = pdfplumber.open(path+"/"+file)
targets = parse(pdf)
save(targets, '%s.xlsx' % file[:-4])
excelnumb +=1
print('運行結束!')
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/121665.html
上一篇:小白求助 為什么字串沒有被替換
下一篇:goland引入專案中本地包
