'''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()