【问题标题】:How to create a list/dict and export the values to Excel from multiple PDF files如何创建列表/字典并将值从多个 PDF 文件导出到 Excel
【发布时间】:2021-05-29 21:55:13
【问题描述】:

我正在做一个 Pdfreader,它将从目录中的能源账单 PDF 中获取信息。该程序正在运行并完全按照我想要“存储”信息的方式打印。

接下来的步骤是:

导出到每张账单中的excel值,与控制台中的打印完全相同: Console image

我尝试过列表、字典。也许方法不对,但没有一个试验成功。

欢迎任何改进和其他方法来做同样的事情,但更聪明。

关注代码

import glob

from PyPDF2 import PdfFileReader
pdf_dir = "C:/Users/gabri/Desktop/py4e/Contas EDP AAP/Leitor PDF/Faturas"
pdf_files = glob.glob("%s/*.pdf" % pdf_dir)
path = pdf_files

for file in pdf_files:
    with open(file, 'rb') as f:
        pdf = PdfFileReader(f)
        page = pdf.getPage(1)
        text = page.extractText()
        text = text.split()

        for word in text:
            if word.endswith('Créditos'):
                word = word.replace("Créditos", "")
                word = word.replace("mês", "")
                word = word.replace("kWh", "")
                energia_injetada = word
                print('Energia injetada: ', energia_injetada)

            elif word.endswith('Saldo'):
                word = word.replace("mês", "")
                word = word.replace("Saldo", "")
                word = word.replace("Participação", "")
                word = word.replace("kWh", "")
                energia_injetada = word
                if 'Recebido' not in word:
                    print('Energia injetada: ', energia_injetada)

            elif word.endswith('Saldo'):
                word = word.replace("Recebido", "")
                word = word.replace("kWhSaldo", "")
                recebidos = word
                print(recebidos)

            elif word.endswith('Participação'):
                word = word.replace("mês", "")
                word = word.replace("Saldo", "")
                word = word.replace("Participação", "")
                word = word.replace("kWh", "")
                energia_injetada = word
                print('Saldo Atualizado: ', energia_injetada)

            elif word.startswith('Verde'):
                print('Bandeira verde')

            elif word.startswith('Vermelha:'):
                print('Bandeira vermelha')

            elif word.startswith('Amarela'):
                print('Bandeira Amarela: ')

            elif word.startswith('('):
                word = word.replace("(", "")
                data_inicial = word
                print('Data inicial: ', data_inicial)

            elif word.endswith(')Nº'):
                word = word.replace(")Nº", "")
                data_final1 = word
                print("Data Final: ", data_final1)

            elif word.endswith(")Agradecemos"):
                word = word.replace(")Agradecemos", "")
                data_final = word
                print('Data final: ', data_final)

            elif word.startswith('Saldo'):
                word = word.replace("Saldo", "")
                participacao_saldo = word
                print('Participação no Saldo: ', participacao_saldo)

                print('\n\n')

            else:
                continue

if __name__ == '__main__' :
    print('ok')

【问题讨论】:

    标签: python pdf reader


    【解决方案1】:

    您可以使用打印:

    with open('out.csv', 'w') as fileout:
        with open(file, 'rb') as f:
            #some code
            print("hi", "data", file=fileout,sep=";")
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-06-04
      • 1970-01-01
      • 2022-06-27
      • 2022-11-26
      • 2019-11-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多