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

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