01.
def
nomes(fich, dicio):
02.
"""
03.
Usa um ficheiro para extrair nomes
04.
e um dicionário para encontrar nome completo. Ordenamento simples.
05.
""”
06.
# Ler informação
07.
ficheiro
=
open(fich)
08.
dados
=
ficheiro.readlines()
09.
ficheiro.close()
10.
# Extrair dados
11.
lista
=
[]
12.
for
elem
in
dados:
13.
pos
=
elem.find(
'~'
)
14.
nome
=
elem[pos
+
1
:
-
1
]
15.
if
nome
in
dicio:
16.
completo
=
dicio[nome][
0
]
17.
lista.append(completo)
18.
# ordenar
19.
lista.sort()
20.
return
lista
Porque a informação está logicamente organizada por linhas é assim que a devemos ler. Vamos depois iterar para cada linha na busca do nome do utilizador, o que fazemos usando o método find. Encontrada a posição o nome tem que estar a partir dessa posição até ao final, mas devemos ter o cuidado de retirar o código correspondente à mudança de linha. O teste dentro do ciclo serve apenas para garantir que só extraímos informação se ela estiver efectivamente no dicionário. Finalmente o método sort é usado para ordenar o resultado.