def nomes(fich, dicio):
"""
Usa um ficheiro para extrair nomes
e um dicionário para encontrar nome completo. Ordenamento simples.
""”
# Ler informação
ficheiro = open(fich)
dados = ficheiro.readlines()
ficheiro.close()
# Extrair dados
lista = []
for elem in dados:
pos = elem.find('~')
nome = elem[pos+1:-1]
if nome in dicio:
completo = dicio[nome][0]
lista.append(completo)
# ordenar
lista.sort()
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.