首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python水管工多重数据读取

Python水管工多重数据读取
EN

Stack Overflow用户
提问于 2020-07-02 10:11:01
回答 1查看 849关注 0票数 1

我正在使用PDF水管工在一个过程中提取数据从PDF发票。当我加载多个PDF时,出现了一个问题。所有文件都上传到代码中,但是当我使用文本的exctractor ( PDF管道工)时,它只提供了下载的最后一个pdf的数据。PDF总是一样的,所以startPhrase和endPhrase是相同的。只是数字变了。有人也有同样的问题吗?这是代码的一部分。

  • 我从电子邮件

下载文件

然后

  • 拥有文本提取器。

def extractWordsFromPdfContentsBetweenPhrases(page,startPhrase,endPhrase):text = page.extract_text() contents = string.strip().split()返回拆分器

然后在函数中使用提取器,将特定的数据放入DataFrame中。

代码语言:javascript
复制
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,而不是所有下载的。谢谢你的帮助

EN

回答 1

Stack Overflow用户

发布于 2021-07-17 17:09:56

IICU

代码语言:javascript
复制
`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?`
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62693940

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档