Ø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
## Kodebit 1 ## file = open('oppgave2.txt', 'r') ## Alternativ A ## alt1 = file.read(150) ## Alternativ B ## alt2 = file.readlines() file.close()
Løsningsforslag:
## 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()