Øvelse 5 – Oppgave 2
Filhåndtering
Filen du trenger for å løse denne opgpaven ligger .zip-mappen.
Ta utgangspunkt i filen oppgave2.txt. Utfør følgende og print ut det resulterende innholdet i filen:
a) Hva er forskjellen på resultatet av kjøringen ved å bruke alternativ A sammenlignet med alternativ B i koden i «Kodebit 1» på tekstfilen?
b) Print alle linjene som er tekst til konsoll
c) Beregn summen av alle tallene i filen og skriv resultatet til slutten av filen
d) Print innholdet i filen ut til konsoll
Hint: for å sjekke om et element er tekst kan man bruke funksjonen .isalpha(), og for å sjekke om et element er tall kan man bruke funksjonen .isdigit() For å sjekke om et element er et mellomrom kan man bruke .isspace(). For å fjerne mellomrom eller newline(‘\n’)-elementer før og etter et element kan man bruke .strip()
Kodebit 1
1 2 3 4 5 6 7 8 9 10 11 | ## Kodebit 1 ## file = open ( 'oppgave2.txt' , 'r' ) ## Alternativ A ## alt1 = file .read( 150 ) ## Alternativ B ## alt2 = file .readlines() file .close() |
Løsningsforslag:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 | ## Oppgave 2 svar ## a) Forskjellen er at alternativ A leser innholdet i filen element for element, og innholdet i parentesen angir # angir hvor mange elementer som skal leses. Alternativ B leser innholdet linje for linje. ## b) file = open ( 'oppgave2.txt' , 'r' ) tall = [] for i in file .readlines(): if i.strip().isdigit(): tall.append( int (i)) else : print ( 'Tekst:' ,i) file .close() ## c) print (tall) tallSum = sum (tall) print (tallSum) with open ( 'oppgave2.txt' , 'a' ) as file : file .write( str (tallSum)) ## d) file = open ( 'oppgave2.txt' , 'r' ) print ( file .readlines()) file .close() |