Solução:
A solução apresentada inclui o ordenamento das linhas. Para isso usamos o método itemgetter do módulo operator. Começamos por percorrer o ficheiro linha a linha, calculando a soma dos números e guardando o resultado numa lista. É feito o ordenamento da lista de seguida. Na terceira parte, criamos o novo ficheiro e guardamos a informação.
from operator import itemgetter def trata_ficheiro(ficheiro,novo_ficheiro): with open(ficheiro,'r') as f_in: novos_dados = list() for linha in f_in: lista_linha = linha[:-1].split() valor = sum([int(elem) for elem in lista_linha[1:]]) lista_linha.append(valor) novos_dados.append(lista_linha) novos_dados.sort(key=itemgetter(-1)) with open(novo_ficheiro,'w') as f_out: for linha in novos_dados: linha[-1] = str(linha[-1]) + '\n' cadeia = ' '.join(linha) f_out.write(cadeia) return novos_dados
Sem comentários:
Enviar um comentário