def les_fil_returner_tabell(filnavn): liste = [] fil = open(filnavn) for linje in fil: liste.append(linje.strip().split("\t")) return liste def fra_tabell_til_fil(tabell, filnavn): # den 'inverse' funkjsonaliteten av prosedyren ovenfor fil = open(filnavn, "w") for liste in tabell: # tabell er ei liste av lister linje = "" for tekst in liste: linje += tekst + "\t" linje += "\n" fil.write(linje) print(filnavn, "er laget/oppdatert") kommuneliste = les_fil_returner_tabell("liste.txt") # Starten av kommuneliste ser n? s?nn ut: # [ # ['03', 'Oslo', '0301', 'Oslo', '0301'], # ['11', 'Rogaland', '1101', 'Eigersund', '1101'], # ['11', 'Rogaland', '1103', 'Stavanger', '1103'], # ... # ] def behold_kun_ett_navn(streng): # Prosedyre som fjerner doble og triple navn navn = streng.split(" ¨C ")[0].split(" - ")[0] # tar kun vare p? den f?rste f?r " - " return navn # ?nsker ? lage ei ordbok med kommunenr som n?kkel, # og kommunenavn, fylkesnr, fylkesnavn og gammelt kommunenummer # i ei liste som innholdsverdi. F.eks. for 1101 Eigersund: # { '1101': ['Eigersund', '11', 'Rogaland', '1101'] } kommuner = {} for komm in kommuneliste: knr = komm[2] knavn = behold_kun_ett_navn(komm[3]) fnr = komm[0] fnavn = behold_kun_ett_navn(komm[1]) gknr = komm[4] kommuner[ knr ] = [knavn, fnr, fnavn, gknr] # oppdaterer kommuneliste med forenklede navn for b?de fylke og kommune for kom in kommuneliste: knr = kom[2] fnavn = kommuner[knr][2] knavn = kommuner[knr][0] kom[1] = fnavn kom[3] = knavn fra_tabell_til_fil(kommuneliste, "kommuneinfo.txt")