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