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