首页 > 解决方案 > Python PDF水管工多数据读取

问题描述

我正在使用 PDF Plumber 从 PDF 发票中提取数据。当我加载多个 PDF 时出现问题。所有文件都上传到代码中,但是当我使用文本提取器(PDF Plumber)时,它只给我下载最后一个 pdf 的数据。PDF 始终相同,因此 startPhrase 和 endPhrase 相同。只是数字变了。有没有人有同样的问题?这是代码的一部分。

然后我在函数中使用提取器,将特定数据放入 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,而不是所有下载的。谢谢您的帮助

标签: pythonpandaspdf

解决方案


重症监护病房

`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?`

推荐阅读