'''Innlesing (og skriving) av data fra (og til) fil Stikkord for dette eksempelprogrammet: - Lese og skrive til fil - While-løkker - For-løkker - Ordbøker - Funksjoner - Parameteroverføring - Skop''' #Åpne fil---------------------: #-Lese en fil: #innfil = open("input.txt","r") #-Skrive til fil: #utfil = open("output.txt","w") #Lukke fil - NB! Viktig!------: #innfil.close() #utfil.close()''' #Lese fra fil: "test.txt"-----: #"test.txt" ligger ute fil = open("test.txt","r") linje = fil.readline() print(linje) fil.close() #Lese mange like linjer: bruk løkker!---: '''Her er et eksempel med hvordan å kombinere funksjoner, parametre returverdier og main()-prosedyrer for å lese fra fil. Programmet bruker "historie.txt" (ligger ute)''' #Funksjon med while-løkke def lagOrdbok1(filnavn): #tar inn et filnavn(sting) fil = open(filnavn, "r") #lager en fil ved å åpne den dict = {} #lager en tom ordbok linje = fil.readline() #leser første linje, lagrer linjen i variabelen 'linje' while linje != "": #så lenge filen har linjer å lese strippet = linje.rstrip() #.rstrip() fjerner \n på slutten av linjen splittet = strippet.split(": ") #splitter linjen på ": ", returnerer liste aar = int(splittet[0]) #År er elementet på index 0 begivenhet = splittet[1] #Begivenhet er elementet på index 1 dict[aar] = begivenhet #legg til i ordbok linje = fil.readline() #les ny linje, starter while-løkken på nytt fil.close() #lukker filen return dict #returnerer ordboken #Funksjon med for-løkke def lagOrdbok2(filnavn): fil = open(filnavn,"r") dict = {} for linje in fil: #Løkken går automatisk gjennom alle linjer strippet = linje.rstrip() splittet = strippet.split(": ") aar = int(splittet[0]) begivenhet = splittet[1] dict[aar] = begivenhet fil.close() return dict #Main-prosedyre def main(): filnavn = "historie.txt" #definerer et filnavn (string) ordbok = lagOrdbok1(filnavn) #kaller på funksjon 1 med filnavnet som argument ordbok2 = lagOrdbok2(filnavn) #kaller på funksjon 2 med filnavnet som argument print("Printer ut ordbok laget med While-løkke:") for ting in ordbok: print(str(ting) + ": " + ordbok[ting]) print() print("Printer ut ordbok laget med For-løkke: ") for ting in ordbok2: print(str(ting) + ": " + ordbok2[ting]) #Kall på main main()