如何解决如何创建列表/字典并将值从多个 PDF 文件导出到 Excel
我正在做一个 Pdfreader,它将从目录中的能源账单 PDF 中获取信息。程序正在按照我想要“存储”信息的方式运行和打印。
接下来的步骤是:
导出到每个帐单的值,与控制台中的打印完全一样: 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","")
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","")
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')
解决方法
您可以使用打印:
const dataToRender = () => {
const filters = {
q: searchTerm
}
const isFiltered = Object.keys(filters).some(function (k) {
return filters[k].length > 0
})
if (dataRender.length > 0) {
return dataRender.slice((currentPage - 1) * rowsPerPage,currentPage * rowsPerPage)
} else if (dataRender.length === 0 && isFiltered) {
return []
} else {
return data.slice((currentPage - 1) * rowsPerPage,currentPage * rowsPerPage)
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。