Ir para conteúdo

flands

Members
  • Total de itens

    1
  • Registro em

  • Última visita

Reputação

0 Comum

Sobre flands

  1. flands

    Erro em leitura de arquivo binário

    Pessoal, bom dia! Estou tentando ler o conteúdo de um arquivo binário em Python para montar um dicionário, mas ao atingir o final do arquivo o programa está "voando" e não estou conseguindo capturar a exceção. Quando faço o debug, vejo que ele inclui os dados no dicionário corretamente, mas ao chegar na última posição do arquivo, o comando pickle.load(arquivo) "voa" e nenhuma outra linha de código após o while é executada. Nem o comando arquio.close() é executado. Abrindo o arquivo .dat em um bloco de notas, a exibição dele é semelhante ao seguinte trecho: S'001' p0 .S'Toninho Silva' p0 .S'Prefeito' p0 .S'Tijuca' p0 .S'2300' p0 . O código que lê do arquivo binário, grava no dicionário e, ao final, exibe na tela o resultado (que é parte do conteúdo do dicionário) segue abaixo: try: dic_votos_candidato = dict() arquivo = open('eleicoes.dat', 'rb') while arquivo: soma = 0 cod_candidato = pickle.load(arquivo) nome_candidato = pickle.load(arquivo) cargo = pickle.load(arquivo) regiao = pickle.load(arquivo) num_votos = pickle.load(arquivo) if dic_votos_candidato.get(nome_candidato): soma = int(dic_votos_candidato[nome_candidato]) soma = soma + int(num_votos) dic_votos_candidato[nome_candidato] = soma else: dic_votos_candidato[nome_candidato] = int(num_votos) arquivo.close() for chave in dic_votos_candidato.keys(): print chave, dic_votos_candidato[chave] except IOError: print "Erro ao abrir o arquivo. Verifique se o arquivo foi criado." print "Caso o arquivo ainda nao exista, use a opcao 1 do menu principal para cria-lo." exit() finally: opcao = raw_input('\nPara continuar, digite a opcao desejada: ') trata_listar(opcao) Desde já agradeço a ajuda!
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.