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