def mapeia_texto(self, nome_arquivo_entrada): # exemplo: nome_arquivo_entrada = 'IPDO-22-06-2016 - unlocked.pdf' nome_arquivo_saida = nome_arquivo_entrada + '-unlocked.pdf' # exemplo: nome_arquivo_entrada = 'IPDO-22-06-2016.pdf' nome_arquivo_entrada = nome_arquivo_entrada + '.pdf' ferramenta = Ferramentas() self.log_arquivo_ipdo = {} # log de ocorrências ferramenta.desbloqueia(nome_arquivo_entrada, nome_arquivo_saida) # Imprime no começo da execução, antes de dar qlqr erro self.html_extraido = ferramenta.pdf_para_html(nome_arquivo_saida) imprimir = ImprimeArquivosTexto() imprimir.texto_em_html(self.html_extraido, 'texto_extraido.html') self.objeto_bs = BeautifulSoup(self.html_extraido, 'html.parser') self.balanco_energetico_resumido = self.extrair_balanco_energetico_resumido() self.balanco_energetico_detalhado = self.extrair_balanco_energetico_detalhado() self.arquivo_ipdo = {} self.arquivo_ipdo["geral"] = self.balanco_energetico_resumido["geral"] self.arquivo_ipdo["balanco_resumido"] = self.balanco_energetico_resumido["balanco_resumido"] self.arquivo_ipdo["balanco_detalhado"] = self.balanco_energetico_detalhado
def energial_potencial_armazenada_em_xlsx(self, geral, balanco_detalhado): wb_ipdo = load_workbook('IPDO.xlsx') ws_balanco_detalhado = wb_ipdo['EnergiaPotencialArmazenada'] ferramenta = Ferramentas() [primeira_linha, ultima_linha] = ferramenta.linha_nao_vazia(ws_balanco_detalhado) ultima_linha = ultima_linha + 1 indice = 'A'+str(ultima_linha) ws_balanco_detalhado[indice] = geral["data_arquivo"] subsistemas_relatorio = ["sudeste","sul","nordeste","norte"] # referência excel # energias_relatorio = ['ENA', 'EAR', 'EAM'] coluna_ena_vf = 1 # primeira ena verificada coluna_ear_vf = 2 coluna_eam_vf = 3 for subsistema in subsistemas_relatorio: coluna_ena_vf += 1 coluna_ear_vf += 1 coluna_eam_vf += 1 indice_ena_vf = ferramenta.retorna_letra_da_coluna(coluna_ena_vf) + str(ultima_linha) indice_ear_vf = ferramenta.retorna_letra_da_coluna(coluna_ear_vf) + str(ultima_linha) indice_eam_vf = ferramenta.retorna_letra_da_coluna(coluna_eam_vf) + str(ultima_linha) for subsistema_extraido in balanco_detalhado: if (subsistema_extraido == subsistema): ws_balanco_detalhado[indice_ena_vf] = float(balanco_detalhado[subsistema_extraido]["ena"]['verificada']) ws_balanco_detalhado[indice_ear_vf] = float(balanco_detalhado[subsistema_extraido]["ear"]['verificada']) ws_balanco_detalhado[indice_eam_vf] = float(balanco_detalhado[subsistema_extraido]["eam"]['verificada']) continue coluna_ena_vf += 2 coluna_ear_vf += 2 coluna_eam_vf += 2 wb_ipdo.save('IPDO.xlsx') # sobrescreve resultados
def energia_armazenada_reservatorio(self, objeto_bs, subsistema): # def energia_armazenada_reservatorio(self, objeto_bs, tag, left_tx, top_tx): tag = 'div' dicionario_expressoes = DicionarioRegEx() # dicionario_strings = DicionarioStrings() # subsistemas = dicionario_strings.subsistemas sistema_interligado = dicionario_expressoes.sistema_interligado extrair = ExtrairDados() ferramenta = Ferramentas() ear_extraida = {} # for sub in subsistemas: texto_extraido_str = \ extrair.dados_objeto_bs(objeto_bs, tag, sistema_interligado[subsistema]['ear_lf'], sistema_interligado[subsistema]['ear_tp'] ) ear_extraida = {'verificada' : texto_extraido_str[0].replace('.','')} print "ear_extraida 1" print ear_extraida eh_numerico = ferramenta.eh_numerico(sistema_interligado[subsistema]['nome'], "ear", ear_extraida['verificada']) if not eh_numerico: # print sub texto_extraido_str = \ extrair.dados_objeto_bs(objeto_bs, tag, sistema_interligado[subsistema]['ear1_lf'], sistema_interligado[subsistema]['ear1_tp'] ) ear_extraida = {'verificada' : texto_extraido_str[0].replace('.','')} print "ear_extraida 2" print ear_extraida eh_numerico = ferramenta.eh_numerico(sistema_interligado[subsistema]['nome'], "ear", ear_extraida['verificada']) # print ear_extraida return ear_extraida
def intercambio_em_xlsx(self, geral, balanco_detalhado): wb_ipdo = load_workbook('IPDO.xlsx') ws_balanco_detalhado = wb_ipdo['Intercambios'] ferramenta = Ferramentas() [primeira_linha, ultima_linha] = ferramenta.linha_nao_vazia(ws_balanco_detalhado) ultima_linha = ultima_linha + 1 indice = 'A'+str(ultima_linha) ws_balanco_detalhado[indice] = geral["data_arquivo"] # saida-chegada sentido_transferencia_energia = ['norte-imperatriz', 'imperatriz-nordeste', \ 'itaipu-sudeste','sudeste-imperatriz', 'sul-sudeste', \ 'internacional-sul'] # referência excel coluna_energia_pg = 1 # primeira intercambio programada coluna_energia_vf = 7 # primeira intercambio verificada estados = 2 # programada e verificada colunas_relatorio = estados * len(sentido_transferencia_energia) # zera todas as células da ultima linha for coluna in xrange(2, (colunas_relatorio+2)): indice = ferramenta.retorna_letra_da_coluna(coluna) + str(ultima_linha) ws_balanco_detalhado[indice] = 0 for intercambio_energia in sentido_transferencia_energia: coluna_energia_pg += 1 coluna_energia_vf += 1 indice_pg = ferramenta.retorna_letra_da_coluna(coluna_energia_pg) + str(ultima_linha) indice_vf = ferramenta.retorna_letra_da_coluna(coluna_energia_vf) + str(ultima_linha) for intercambio_extraido in balanco_detalhado['intercambio']: if (intercambio_extraido == intercambio_energia): ws_balanco_detalhado[indice_pg] = balanco_detalhado['intercambio'][intercambio_extraido]['programada'] ws_balanco_detalhado[indice_vf] = balanco_detalhado['intercambio'][intercambio_extraido]['verificada'] continue wb_ipdo.save('IPDO.xlsx') # sobrescreve resultados
def balanco_energia_resumido_em_xlsx(self, geral, balanco_resumido): wb_ipdo = load_workbook('IPDO.xlsx') ws_balanco_resumido = wb_ipdo['BalancoResumido'] ferramenta = Ferramentas() [primeira_linha, ultima_linha] = ferramenta.linha_nao_vazia(ws_balanco_resumido) ultima_linha = ultima_linha + 1 indice = 'A'+str(ultima_linha) ws_balanco_resumido[indice] = geral["data_arquivo"] num_elementos_pg = len(balanco_resumido["programada"]) # Número de elementos do resumo conta_valores = 0 for conta_coluna_pg in xrange(1, num_elementos_pg): letra = ferramenta.retorna_letra_da_coluna(conta_coluna_pg + 1) indice = letra + str(ultima_linha) ws_balanco_resumido[indice] = float(balanco_resumido["programada"][conta_valores].replace('.','')) conta_valores = conta_valores + 1 num_elementos_vf = len(balanco_resumido["verificada"]) + conta_coluna_pg conta_valores = 0 for conta_coluna_vf in xrange(conta_coluna_pg, num_elementos_vf): letra = ferramenta.retorna_letra_da_coluna(conta_coluna_vf + 2) indice = letra + str(ultima_linha) ws_balanco_resumido[indice] = balanco_resumido["verificada"][conta_valores].replace('.','') conta_valores = conta_valores + 1 wb_ipdo.save('IPDO.xlsx') # sobrescreve resultados
def valida_conteudo_numerico(self, balanco_detalhado): import sys ferramenta = Ferramentas() for subsistema in balanco_detalhado: for fonte in balanco_detalhado[subsistema]["energia"]: # print " energia " + fonte for tipo in balanco_detalhado[subsistema]["energia"][fonte]: # print " " + tipo + " " + str(balanco_detalhado[subsistema]["energia"][fonte]["verificada"]) eh_numerico = ferramenta.eh_numerico(subsistema, fonte, balanco_detalhado[subsistema]["energia"][fonte]["verificada"]) if not eh_numerico :sys.exit() eh_numerico = ferramenta.eh_numerico(subsistema, fonte, balanco_detalhado[subsistema]["energia"][fonte]["programada"]) if not eh_numerico :sys.exit() eh_numerico = ferramenta.eh_numerico(subsistema, "carga", balanco_detalhado[subsistema]["carga"]["verificada"]) if not eh_numerico :sys.exit() eh_numerico = ferramenta.eh_numerico(subsistema, "carga", balanco_detalhado[subsistema]["carga"]["programada"]) if not eh_numerico :sys.exit() eh_numerico = ferramenta.eh_numerico(subsistema, "ena", balanco_detalhado[subsistema]["ena"]["verificada"]) if not eh_numerico :sys.exit() # eh_numerico = ferramenta.eh_numerico(subsistema, "ear", balanco_detalhado[subsistema]["ear"]["verificada"]) # if not eh_numerico :sys.exit()
def balanco_energia_detalhado_em_xlsx(self, geral, balanco_detalhado): wb_ipdo = load_workbook('IPDO.xlsx') ws_balanco_detalhado = wb_ipdo['BalancoDetalhado'] ferramenta = Ferramentas() [primeira_linha, ultima_linha] = ferramenta.linha_nao_vazia(ws_balanco_detalhado) ultima_linha = ultima_linha + 1 indice = 'A'+str(ultima_linha) ws_balanco_detalhado[indice] = geral["data_arquivo"] fontes_relatorio = ["Hidro","Termo","Nuclear","Eólica","Solar","Total","Carga" ] subsistemas_relatorio = ["sudeste","sul","nordeste","norte"] coluna_energia_pg = 1 # primeira fonte programada coluna_carga_pg = 8 coluna_energia_vf = 8 # primeira fonte verificada coluna_carga_vf = 15 estados = 2 # programada e verificada colunas_relatorio = estados * len(subsistemas_relatorio)*len(fontes_relatorio) # zera todas as células da ultima linha for coluna in xrange(2, (colunas_relatorio+2)): indice = ferramenta.retorna_letra_da_coluna(coluna) + str(ultima_linha) ws_balanco_detalhado[indice] = 0 for subsistema in subsistemas_relatorio: for fonte in fontes_relatorio: coluna_energia_pg += 1 coluna_energia_vf += 1 indice_pg = ferramenta.retorna_letra_da_coluna(coluna_energia_pg) + str(ultima_linha) indice_vf = ferramenta.retorna_letra_da_coluna(coluna_energia_vf) + str(ultima_linha) indice_carga_pg = ferramenta.retorna_letra_da_coluna(coluna_carga_pg) + str(ultima_linha) indice_carga_vf = ferramenta.retorna_letra_da_coluna(coluna_carga_vf) + str(ultima_linha) for fonte_extraida in balanco_detalhado[subsistema]["energia"]: if (fonte_extraida == fonte): ws_balanco_detalhado[indice_pg] = float(balanco_detalhado[subsistema]["energia"][fonte]["programada"]) ws_balanco_detalhado[indice_vf] = float(balanco_detalhado[subsistema]["energia"][fonte]["verificada"]) elif (fonte == "Carga"): ws_balanco_detalhado[indice_carga_pg] = float(balanco_detalhado[subsistema]["carga"]["programada"]) ws_balanco_detalhado[indice_carga_vf] = float(balanco_detalhado[subsistema]["carga"]["verificada"]) continue coluna_energia_pg += 7 # pula fontes verificadas coluna_energia_vf += 7 # pula fontes programadas coluna_carga_pg += 14 # pula fontes verificadas e programadas coluna_carga_vf += 14 # Imprime geração de Itaipu coluna_energia_pg = 57 # primeira 50hz programada coluna_energia_vf = 60 for frequencia in balanco_detalhado['itaipu']['energia']: coluna_energia_pg += 1 coluna_energia_vf += 1 indice_pg = ferramenta.retorna_letra_da_coluna(coluna_energia_pg) + str(ultima_linha) indice_vf = ferramenta.retorna_letra_da_coluna(coluna_energia_vf) + str(ultima_linha) print indice_pg print balanco_detalhado['itaipu']['energia'][frequencia]["programada"] ws_balanco_detalhado[indice_pg] = (balanco_detalhado['itaipu']['energia'][frequencia]["programada"]) ws_balanco_detalhado[indice_vf] = (balanco_detalhado['itaipu']['energia'][frequencia]["verificada"]) wb_ipdo.save('IPDO.xlsx') # sobrescreve resultados
""" Created on Mon Aug 29 12:20:38 2016 @author: Claudio """ import os from bs4 import BeautifulSoup from Utilitarios import Ferramentas from openpyxl import load_workbook from ExtracaoTexto import DadosBalancoEnergeticoDetalhado from Mapeamento import DicionarioRegEx #arquivo_ipdo = ArquivoIPDO(nome_arquivo_entrada) subsistema = DadosBalancoEnergeticoDetalhado() converte = Ferramentas() caminho = os.getcwd() caminho = os.getcwd() caminho = str(caminho) + '\Scripts-py' for dia in xrange(01,02): if (dia <10): nome_arquivo_entrada = caminho + '\IPDO-0'+str(dia)+'-05-2016' else: nome_arquivo_entrada = caminho + '\IPDO-'+str(dia)+'-05-2016' # exemplo: nome_arquivo_entrada = 'IPDO-22-06-2016.pdf' nome_arquivo_saida = nome_arquivo_entrada + '-unlocked.pdf' # exemplo: nome_arquivo_entrada = 'IPDO-22-06-2016.pdf' nome_arquivo_entrada = nome_arquivo_entrada + '.pdf'