Oppg-5-2

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