PythonPodcast 8 - itnett/FTD02H-N GitHub Wiki

Episode 8 – Filbehandling i Python: Lesing og Skriving til Filer

Velkommen til episode 8 av vår Python-podcast! 🎧🎉 I dag skal vi lære om filbehandling i Python, noe som er veldig viktig når du skal jobbe med data som ligger utenfor programmet ditt, som tekstfiler. Men som vanlig, starter vi med en rask oppsummering av det vi har lært så langt.


Oppsummering av tidligere episoder:

  1. Grunnleggende Python-syntaks, variabler, og betingelser.

  2. Løkker, input/output, og funksjoner.

  3. Feilhåndtering og bruk av lister, tupler, og ordbøker.

  4. Mengder, nøkkel-verdi-par, og hvordan vi kan bruke datastrukturer effektivt.


Dagens tema: Filbehandling 🗂️

Filbehandling handler om å lese fra og skrive til filer på datamaskinen. Dette er en grunnleggende ferdighet som alle Python-utviklere trenger, enten du skal hente inn data fra en fil eller lagre resultater for senere bruk.

Python gir oss en innebygd funksjon kalt open() som vi bruker for å åpne filer. Deretter kan vi lese, skrive eller legge til i filer.

Hvordan åpner vi en fil i Python?

Når vi skal åpne en fil i Python, bruker vi som sagt open()-funksjonen. Denne funksjonen har to nødvendige argumenter:

Filnavnet: Navnet på filen du vil åpne.

Modus: Modusen spesifiserer om vi vil lese (r), skrive (w), eller legge til (a) i filen.

Eksempel:

Åpne en fil for lesing

fil = open("eksempel.txt", "r")

🔊 Les opp koden:

Linje 1: Vi åpner filen "eksempel.txt" i lesemodus (r står for read). Filen må finnes på datamaskinen, ellers får vi en feil.

Hvordan leser vi fra en fil?

Det finnes flere måter å lese fra en fil på:

  1. Lese hele filen på en gang:

innhold = fil.read() print(innhold)

Dette vil lese hele filen som én stor streng.

  1. Lese linje for linje:

for linje i fil: print(linje)

Dette vil lese én linje av gangen og skrive det ut.

Skrive til en fil

For å skrive til en fil, må vi åpne den i skrive-modus (w for write) eller legge-til-modus (a for append).

Skrive til en ny fil:

Åpne en fil for skriving

fil = open("ny_fil.txt", "w")

Skrive tekst til filen

fil.write("Dette er første linje.\n") fil.write("Dette er andre linje.\n")

Husk å lukke filen etterpå!

fil.close()

🔊 Les opp koden:

Linje 1: Vi åpner en ny fil som heter "ny_fil.txt" i skrivemodus (w).

Linje 3: write()-funksjonen skriver tekst til filen. Her har vi skrevet to linjer.

Linje 6: Vi bruker close() for å lukke filen etter at vi er ferdige. Dette er viktig for å unngå tap av data.

Filmoduser:

Her er en kort oversikt over de vanligste filmodusene du vil bruke:

r – Lesing (filen må eksistere).

w – Skriving (lager en ny fil hvis den ikke finnes, eller overskriver eksisterende fil).

a – Legge til (skriver til slutten av filen uten å slette eksisterende innhold).

r+ – Lesing og skriving (filen må eksistere).

Bruk av with for filbehandling

En viktig teknikk i Python er å bruke with-setningen når vi jobber med filer. Den sørger for at filen automatisk lukkes, selv om det oppstår en feil. Dette gjør koden vår sikrere.

Eksempel med with:

with open("eksempel.txt", "r") as fil: innhold = fil.read() print(innhold)

Filen blir automatisk lukket her

🔊 Les opp koden:

Linje 1: Vi åpner "eksempel.txt" med with. Når vi er ferdige med å lese, lukkes filen automatisk.

Linje 2: Vi leser hele innholdet og skriver det ut.

Eksempel: Lagre brukers input til fil

La oss lage et enkelt program der vi tar input fra brukeren og lagrer det til en fil.

Ta input fra brukeren

brukernavn = input("Hva heter du? ")

Lagre navnet til en fil

with open("bruker_input.txt", "w") as fil: fil.write(f"Brukernavn: {brukernavn}\n")

print("Navnet ditt er lagret til filen bruker_input.txt")

🔊 Les opp koden:

Linje 1: Vi bruker input() for å hente brukerens navn.

Linje 4: Med with open() åpner vi en fil i skrivemodus og lagrer brukernavnet.

Avansert: Skrive lister til fil

Ofte vil vi lagre mer komplekse data, som lister eller ordbøker, til filer. Da kan vi bruke modulen json for å lagre og lese slike data på en strukturert måte.

Eksempel:

import json

Liste med data

data = ["eple", "banan", "appelsin"]

Skrive data til en fil som JSON

with open("data.json", "w") as fil: json.dump(data, fil)

🔊 Les opp koden:

Linje 1: Vi importerer json-modulen som lar oss jobbe med JSON-formatet.

Linje 4: Vi bruker json.dump() for å skrive listen vår til en fil i JSON-format.

Oppsummering av Episode 8:

Vi har lært hvordan vi åpner, leser, skriver og legger til filer i Python.

Vi lærte om filmoduser som r (lesing), w (skriving), og a (legge til).

Vi har sett hvordan vi kan bruke with for å håndtere filer sikkert og unngå å glemme å lukke dem.

Til slutt har vi brukt json for å lagre komplekse datastrukturer som lister til filer.


Oppgaver til deg:

  1. Lag et program som tar inn flere linjer med tekst fra brukeren og lagrer dem i en fil. Hver linje skal legges til filen uten å overskrive tidligere innhold.

  2. Bruk en ordbok for å lagre informasjon om favorittfilmene dine (tittel, år, regissør) og lagre ordboken til en fil i JSON-format.


I neste episode skal vi se på feilhåndtering og hvordan vi kan gjøre programmene våre mer robuste ved å håndtere unntak og feil som kan oppstå under kjøring.

Vi høres i neste episode! 🎙️