PythonPodcast 45 - itnett/FTD02H-N GitHub Wiki

Python Mentorkurs – Episode 10: Filbehandling i Python

Mentor: "Velkommen tilbake! I forrige episode lærte vi om hvordan vi kan organisere koden vår ved hjelp av moduler og pakker. I dag skal vi snakke om et annet viktig tema – filbehandling. Det er svært vanlig at programmer trenger å lese og skrive data til filer. Enten det er å lagre brukerinnstillinger, logger, eller data fra applikasjoner, er filbehandling en grunnleggende ferdighet du trenger. La oss komme i gang!"


Hva er Filbehandling?

Mentor: "Filbehandling handler om å åpne, lese fra, skrive til, og lukke filer i et program. Dette gjør at vi kan jobbe med data som er lagret på harddisken, enten for å lagre data permanent eller hente dem igjen senere. I Python håndteres filer ved hjelp av noen enkle funksjoner, som open(), read(), write(), og close(). Python gjør det enkelt å jobbe med filer, men du må være nøye med å håndtere filer riktig for å unngå feil."


Åpne og Lukke Filer

Mentor: "For å jobbe med filer i Python, begynner vi med å åpne filen. Dette gjøres ved hjelp av open()-funksjonen. Når vi er ferdige med å jobbe med filen, må vi huske å lukke den ved hjelp av close()-funksjonen."

Åpne en fil i skrive-modus (write)

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

Skrive til filen

fil.write("Dette er en eksempeltekst.\n")

Lukke filen

fil.close()

Mentor: "Her åpner vi en fil kalt eksempel.txt i skrive-modus. Vi skriver en tekst til filen, og deretter lukker vi den. Hvis filen ikke eksisterer fra før, vil Python lage en ny fil for oss."


Lesing fra Filer

Mentor: "For å lese fra en fil bruker vi read()- eller readlines()-metoden, avhengig av om vi vil lese hele innholdet som én stor streng, eller lese linje for linje."

Åpne filen i lese-modus (read)

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

Lese innholdet

innhold = fil.read()

Skrive ut innholdet

print(innhold)

Lukke filen

fil.close()

Mentor: "Her åpner vi den samme filen i lese-modus og leser hele innholdet ved hjelp av read()-metoden. Deretter skriver vi ut innholdet til konsollen."


Bruk av with for å Håndtere Filer

Mentor: "En bedre måte å håndtere filer på i Python er ved å bruke with-setningen. Dette sørger for at filen blir lukket automatisk, selv om det oppstår en feil."

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

Mentor: "Med with trenger vi ikke å bekymre oss for å lukke filen manuelt. Python vil gjøre det for oss automatisk når vi er ferdige med å jobbe med filen."


Skrive Til Filer

Mentor: "Vi kan skrive data til en fil ved å bruke write()-metoden. Hvis du åpner filen i skrive-modus (w), vil filen bli overskrevet hver gang du skriver til den. Hvis du vil legge til data uten å overskrive innholdet, kan du åpne filen i tillegg-modus (a)."

Skrive til en fil (overskriver innholdet)

with open("eksempel.txt", "w") as fil: fil.write("Nytt innhold som overskriver det gamle.\n")

Legge til innhold (beholder eksisterende innhold)

with open("eksempel.txt", "a") as fil: fil.write("Dette blir lagt til i filen.\n")

Mentor: "Her ser vi forskjellen mellom å skrive og legge til innhold. Når vi åpner filen i skrive-modus (w), overskriver vi alt innholdet. Men når vi åpner den i tillegg-modus (a), legger vi til ny tekst på slutten av filen."


Lese og Skrive Linje for Linje

Mentor: "Noen ganger vil vi behandle filer linje for linje, spesielt når vi jobber med store filer som ikke kan lastes inn i minnet på én gang."

Åpne filen i lese-modus

with open("eksempel.txt", "r") as fil: for linje in fil: print(linje.strip()) # Strip fjerner unødvendige mellomrom og linjeskift

Mentor: "Her leser vi filen linje for linje ved å bruke en for-løkke. Dette er en effektiv måte å håndtere store filer på."


Jobbe med CSV-filer

Mentor: "Mange datafiler bruker CSV-formatet (Comma-Separated Values), som er en enkel måte å strukturere data på. Python har et innebygd bibliotek kalt csv for å lese og skrive CSV-filer."

import csv

Skrive til en CSV-fil

with open("data.csv", "w", newline="") as fil: writer = csv.writer(fil) writer.writerow(["Navn", "Alder", "Yrke"]) writer.writerow(["Ola", "30", "Utvikler"]) writer.writerow(["Kari", "25", "Designer"])

Lese fra en CSV-fil

with open("data.csv", "r") as fil: reader = csv.reader(fil) for row in reader: print(row)

Mentor: "Her bruker vi csv-modulen til å skrive data til en CSV-fil og deretter lese den tilbake. Dette er en praktisk måte å lagre tabellbaserte data på."


Fil- og Katalogoperasjoner med os-modulen

Mentor: "Noen ganger må vi jobbe med filer og kataloger, som å slette filer eller opprette nye kataloger. Dette kan vi gjøre ved hjelp av os-modulen."

import os

Sjekk om en fil eksisterer

if os.path.exists("eksempel.txt"): print("Filen eksisterer.")

Opprette en ny katalog

os.makedirs("ny_mappe")

Slette en fil

os.remove("eksempel.txt")

Mentor: "Her bruker vi os.path.exists() for å sjekke om en fil eksisterer, os.makedirs() for å opprette en ny katalog, og os.remove() for å slette en fil."


Feilhåndtering i Filbehandling

Mentor: "Når du jobber med filer, er det viktig å håndtere feil, spesielt når det gjelder å lese eller skrive til filer som kanskje ikke eksisterer eller som ikke kan åpnes. Vi bruker try og except for å fange opp feil."

try: with open("ikke_eksisterer.txt", "r") as fil: innhold = fil.read() except FileNotFoundError: print("Filen ble ikke funnet.")

Mentor: "Her fanger vi opp en FileNotFoundError hvis filen ikke eksisterer. Dette er en enkel måte å håndtere feil på og unngå at programmet krasjer."


Oppsummering

Mentor: "I denne episoden har vi lært om filbehandling i Python. Vi har sett på hvordan vi kan åpne, lese, og skrive til filer. Vi har også sett på hvordan vi kan jobbe med CSV-filer, håndtere filer og kataloger med os-modulen, og hvordan vi kan håndtere feil når vi jobber med filer. Filbehandling er en grunnleggende ferdighet som du vil bruke i mange Python-prosjekter."


Praktisk Oppgave: Jobb med Filer

Mentor: "Her er en oppgave for deg: Lag et program som logger alle innlogginger til en fil. Hver gang noen logger inn, skal du legge til et nytt linje i loggfilen med tidspunktet for innloggingen. Sørg for at programmet kan lese loggfilen og vise alle innlogginger som har blitt gjort."


Mentor: "I neste episode skal vi snakke om objektorientert programmering (OOP) i Python. Vi vil lære hvordan du kan bruke klasser og objekter for å organisere koden din på en mer strukturert måte. Vi sees da!"


Denne episoden introduserer deltageren for filbehandling i Python, inkludert grunnleggende operasjoner som å åpne, lese, skrive og lukke filer. Gjennom eksempler og praktiske oppgaver lærer deltageren hvordan de kan jobbe med filer i sine programmer, og hvordan de kan bruke moduler som csv og os til