我正在使用PDF水管工在一个过程中提取数据从PDF发票。当我加载多个PDF时,出现了一个问题。所有文件都上传到代码中,但是当我使用文本的exctractor ( PDF管道工)时,它只提供了下载的最后一个pdf的数据。PDF总是一样的,所以startPhrase和endPhrase是相同的。只是数字变了。有人也有同样的问题吗?这是代码的一部分。
下载文件
然后
def extractWordsFromPdfContentsBetweenPhrases(page,startPhrase,endPhrase):text = page.extract_text() contents = string.strip().split()返回拆分器
然后在函数中使用提取器,将特定的数据放入DataFrame中。
def readDataFromSavedMails():
for filename in os.listdir(workingFolder):
if filename.endswith(".pdf"):
ap = (workingFolder + filename)
with pdfplumber.open(ap) as pdf:
splitterFirstPage = extractWordsFromPdfContentsBetweenPhrases(pdf.pages[1],'Údaje o měřicím zařízení','Zúčtované částky celkem')
splitterSecondPage = extractWordsFromPdfContentsBetweenPhrases(pdf.pages[1],'VYÚČTOVÁNÍ SPOTŘEBY ELEKTŘINY KE DNI','Údaje o měřicím zařízení')
splitterThirdPage = extractWordsFromPdfContentsBetweenPhrases(pdf.pages[0],'Nedoplatek ve výši','prosíme uhraďte do data splatnosti')
dateOD = splitterFirstPage[10]
dateDO = splitterFirstPage[11]
spotreba = splitterFirstPage[33]
cena = splitterThirdPage[0]
ean = splitterSecondPage[7]
return pd.DataFrame({'EAN':[ean],'DatumOD': [dateOD], 'DatumDo': [dateDO], 'Spotřeba v kWh':[spotreba],'Cena v CZK':[cena]})数据中的数据仅来自最后一个pdf,而不是所有下载的。谢谢你的帮助
发布于 2021-07-17 17:09:56
IICU
`import glob
from tqdm.auto import tqdm
for current_pdf_file in tqdm(glob.glob("Path/*.pdf")):
with pdfplumber.open(current_pdf_file) as my_pdf:
# do other things here?`https://stackoverflow.com/questions/62693940
复制相似问题