簡體   English   中英

如何使用python將給定的PDF提取到文本和表格並將數據存儲在.csv文件中?

[英]How to extract given PDF to text and tables using python and store the data in .csv file?

我需要提取第一個表帳號,分行名稱等和最后一個表日期,描述和金額。

pdf 文件: https ://drive.google.com/file/d/1b537hdTUMQwWSOJHRan6ckHBUDhRBbvX/view?usp = sharing 使用 pypdf2 庫獲取空白輸出。 camelot 給出 OSError: Ghostscript 未安裝。

import PyPDF2
file_path =open(r"E:\user\programs\28_oct_bank_statement\demo.pdf", "rb")
pdf = PyPDF2.PdfFileReader(file_path)
pageObj = pdf.getPage(0)
print(pageObj.extractText())
import camelot

data = camelot.read_pdf(r"demo.pdf", pages='all')
print(data)

Camelot 具有需要安裝才能工作的依賴項,例如 Ghoscript。 您首先需要檢查它是否為 mac/ubuntu 正確安裝:

from ctypes.util import find_library
find_library("gs")
"libgs.so.9"

對於窗戶:

import ctypes
from ctypes.util import find_library
find_library("".join(("gsdll", str(ctypes.sizeof(ctypes.c_voidp) * 8), ".dll")))
<name-of-ghostscript-library-on-windows>

否則,請從以下頁面https://ghostscript.com/下載適用於 windows 的 Ghostscript。如果您遇到更多問題,我強烈建議您再次閱讀 Camelot 文檔。

我通常使用 apache tika 來做到這一點。

如圖所示

您可以簡單地安裝它,然后使用 python 腳本:



from tika import parser  
  
parsed_pdf = parser.from_file("sample.pdf")
  
text = parsed_pdf['content']
metadata = parsed_pdf['metadata']
print(data)
  

請注意,您確實需要在機器上安裝 Java 才能運行它,但是它會返回測試,然后一旦您獲得文本,您就可以查找文本中的模式以提取所需的確切數據。

關於這個的好處是它還將返回 pdf 的元數據

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM