首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何创建列表/字典并将值从多个PDF文件导出到Excel

如何创建列表/字典并将值从多个PDF文件导出到Excel
EN

Stack Overflow用户
提问于 2021-02-28 06:37:18
回答 1查看 26关注 0票数 0

我正在做一个Pdfreader,它将从一个目录中的能源账单PDF中获得信息。程序的运行和打印完全按照我想‘存储’信息的方式进行。

接下来的步骤是:

导出到excel每个账单的值,与控制台中的打印完全一样:Console image

我试过列表,字典。也许是以一种错误的方式,但没有一个试验是成功的。

欢迎任何改进和其他方式来做同样的事情,但更智能。

遵循代码

代码语言:javascript
复制
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')
EN

回答 1

Stack Overflow用户

发布于 2021-02-28 08:28:40

您可以使用print:

代码语言:javascript
复制
with open('out.csv', 'w') as fileout:
    with open(file, 'rb') as f:
        #some code
        print("hi", "data", file=fileout,sep=";")
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66404099

复制
相关文章

相似问题

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