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.
01.
from
operator
import
itemgetter
02.
03.
def
trata_ficheiro(ficheiro,novo_ficheiro):
04.
with open(ficheiro,
'r'
) as f_in:
05.
novos_dados
=
list()
06.
for
linha
in
f_in:
07.
lista_linha
=
linha[:
-
1
].split()
08.
valor
=
sum([int(elem)
for
elem
in
lista_linha[
1
:]])
09.
lista_linha.append(valor)
10.
novos_dados.append(lista_linha)
11.
12.
novos_dados.sort(key
=
itemgetter(
-
1
))
13.
with open(novo_ficheiro,
'w'
) as f_out:
14.
for
linha
in
novos_dados:
15.
linha[
-
1
]
=
str(linha[
-
1
])
+
'\n'
16.
cadeia
=
' '
.join(linha)
17.
f_out.write(cadeia)
18.
19.
return
novos_dados
Sem comentários:
Enviar um comentário