SlideShare a Scribd company logo
Introduktion till programmering
Fel- och filhantering
Dagens upplägg
• Förbättrad felhantering
• När allt inte går som planerat: try/except
• Filhantering
• Öppna filer
• Skapa filer
• Läsa/redigera/ersätta innehåll i filer
• Stänga filer
• Kombinerat exempel
Några frågor?
DA354B - Introduktion till programmering: Fil- och felhantering
Vad har vi gjort hittills?
Variabler If-satser Loopar
Funktioner
Datatyper
Strängar Heltal Decimal
tal
Boolska
värden
Listor Lexikon
Vi har lärt oss att göra program!
och att programmera!
DA354B - Introduktion till programmering: Fil- och felhantering
Programkrascher
Ni har nog varit med om det?
DA354B - Introduktion till programmering: Fil- och felhantering
DA354B - Introduktion till programmering: Fil- och felhantering
DA354B - Introduktion till programmering: Fil- och felhantering
DA354B - Introduktion till programmering: Fil- och felhantering
När får vi fel?
När brukar era fel dyka upp?
DA354B - Introduktion till programmering: Fil- och felhantering
Designa för fel.
Alla gör fel, förr eller senare. Tänk användbarhet.
DA354B - Introduktion till programmering: Fil- och felhantering
DA354B - Introduktion till programmering: Fil- och felhantering
DA354B - Introduktion till programmering: Fil- och felhantering
Det blev ett undantag
Ett undantag (eng. exception) är ett fel som
uppstår medan ett program körs,
vilket medför att programmet abrupt
stoppas (kraschar).
Du kan använda try / except för att snyggt
hantera dessa fel/undantag.
https://www.tutorialspoint.com/
python3/python_exceptions.htm
Lista på undantag
Hantera fel – fel sker alltid
•I Python kan man använda try för försöka
utföra något
•Skulle det man försöker utföra gå fel, kan
man fånga upp felet genom except
Python kan ge oss olika typer av fel
• Exempel på typer av fel:
• NameError När en variabel/funktion inte finns
• TypeError När vi använder datatyper felaktivt
• IndexError Vi försöker hämta ut ett värde från en lista genom
ett index som inte finns
• ZeroDivisionError Vi försöker dividera med 0
• ImportError Vi försöker importera något som inte finns
• Osv.
• Fler typer av fel hittar ni här:
https://docs.python.org/3/library/exceptions.html
Hur hanterar vi
undantagen?
DA354B - Introduktion till programmering: Fil- och felhantering
DA354B - Introduktion till programmering: Fil- och felhantering
Generella fel vs. Specifika fel
• Man kan i Python som vi sett, antingen ”upptäcka”:
• Generella fel (alla fel)
• Specifika fel (av en viss typ)
• Ibland vill man helgradera sig mellan flera fel, t.ex.
Frågor på felhantering?
Genom try / except
Demo! =)
Filhantering
Skapa program som kommer ihåg saker!
Att spara text i filer
• Hittills har våra program varit helt nollställda när vi startat dem,
vilket ibland har fungerat bra – men det vore ju roligt om vi kunde
spara information mellan olika körningar.
• Det gör man enkelt genom att spara information i textfiler. Detta t.ex.
genom
• Ren text
• Semikolonseparerade värden
• Andra typer av strukturer, t.ex.
• JSON
• Pickle
• XML
• etc.
Öppnar i skrivläge (lägger till innehåll)
Att öppna filer i Python
Öppnar i läsläge
Öppnar i skrivläge
(ersätter innehåll)
r = read w = write a = append
Funktioner för filer
•read() Returnerar all text i filen
•readline() Returnerar en rad åt gången
•readlines() Returnerar alla rader som en lista
•write() Skriver till filen
Att läsa från en fil
Läsa in varje rad från en fil
close()
Stänger filen när vi jobbat klart med den
Demo! =)

More Related Content

PDF
HT19 - DA354A - Fel- och filhantering
PDF
HT18 - DA354A - Fel- och filhantering
PDF
HT16 - DA354A - Fel- och filhantering
PPTX
HT15, DA354A - Fel- och filhantering
ODP
Fil- och felhantering. Igen.
PDF
HT19 - DA354A - Introduktion till Python
PDF
HT22 - DA354A - Introduktion till Programmering
PDF
HT24 - DA354B - Introduktion till Python
HT19 - DA354A - Fel- och filhantering
HT18 - DA354A - Fel- och filhantering
HT16 - DA354A - Fel- och filhantering
HT15, DA354A - Fel- och filhantering
Fil- och felhantering. Igen.
HT19 - DA354A - Introduktion till Python
HT22 - DA354A - Introduktion till Programmering
HT24 - DA354B - Introduktion till Python

Similar to DA354B - Introduktion till programmering: Fil- och felhantering (10)

PDF
HT18 - DA354A - Introduction to programming
PPTX
HT15, DA354A - Introduktion till Python
PDF
HT16 - DA354A - Introduktion till programmering (Python)
PDF
HT22 - DA354A - Listor & lexikon
PDF
HT23 - DA354A - Listor och lexikon
PDF
HT16 - DA354A - Listor & Lexikon
PDF
Presentation dokumenthantering workshop 27 april 2016
PPTX
Tjejer kodar 100 - Dag 3 - Python
PDF
Metodik - Versionshantering, pakethantering, paketering och testning
HT18 - DA354A - Introduction to programming
HT15, DA354A - Introduktion till Python
HT16 - DA354A - Introduktion till programmering (Python)
HT22 - DA354A - Listor & lexikon
HT23 - DA354A - Listor och lexikon
HT16 - DA354A - Listor & Lexikon
Presentation dokumenthantering workshop 27 april 2016
Tjejer kodar 100 - Dag 3 - Python
Metodik - Versionshantering, pakethantering, paketering och testning
Ad

More from Anton Tibblin (20)

PPTX
React - Gästföreläsning - Flerplattformsapplikationer
PDF
2025 - DA395A - Localstorage & cookies Geolocation Mediahantering.pdf
PDF
DA395A -jQuery och Ajax - Flerplattformsapplikationer med webbtekniker
PDF
VT25 - JavaScript och DOM - Flerplattformsapplikationer med webbtekniker
PDF
VT25 - DA395A - Kursintroduktion i Flerplattformsapplikationerm med webbtekniker
PDF
HT24 - DA354B - Introduktion till programmering - OOP
PDF
DA354B - Introduktion till programmering - Webbprogrammering
PDF
HT24 - DA354B - Mer om funktioner i Python
PDF
HT24 - DA354B -Intro:Funktioner i Python
PDF
HT24 - DA354B - Kursintroduktion till programmering
PDF
DA106A - Introduktion till webbutveckling - Responsiv design
PDF
HT24 - Introduktion till webbutveckling - Introduktion till CSS
PDF
HT24 - Introduktion till webbutveckling - Tabeller och formulär
PDF
HT24 - Introduktion till webbutveckling - Introduktion till HTML
PDF
HT24 - Introduktion till webbutveckling - Kursintroduktion
PDF
2024 - Localstorage & cookies Geolocation Mediahantering.pdf
PDF
VT24 - jQuery & Ajax - Flerplattformsapplikationer med webbtekniker
PDF
VT24 - Responsiv design & Ramverk inom webbutveckling
PDF
DA395A - VT24 - JavaScript & Document object model
PDF
VT24 - DA395A - Kursintroduktion: Flerplattformsapplikationer med webbtekniker
React - Gästföreläsning - Flerplattformsapplikationer
2025 - DA395A - Localstorage & cookies Geolocation Mediahantering.pdf
DA395A -jQuery och Ajax - Flerplattformsapplikationer med webbtekniker
VT25 - JavaScript och DOM - Flerplattformsapplikationer med webbtekniker
VT25 - DA395A - Kursintroduktion i Flerplattformsapplikationerm med webbtekniker
HT24 - DA354B - Introduktion till programmering - OOP
DA354B - Introduktion till programmering - Webbprogrammering
HT24 - DA354B - Mer om funktioner i Python
HT24 - DA354B -Intro:Funktioner i Python
HT24 - DA354B - Kursintroduktion till programmering
DA106A - Introduktion till webbutveckling - Responsiv design
HT24 - Introduktion till webbutveckling - Introduktion till CSS
HT24 - Introduktion till webbutveckling - Tabeller och formulär
HT24 - Introduktion till webbutveckling - Introduktion till HTML
HT24 - Introduktion till webbutveckling - Kursintroduktion
2024 - Localstorage & cookies Geolocation Mediahantering.pdf
VT24 - jQuery & Ajax - Flerplattformsapplikationer med webbtekniker
VT24 - Responsiv design & Ramverk inom webbutveckling
DA395A - VT24 - JavaScript & Document object model
VT24 - DA395A - Kursintroduktion: Flerplattformsapplikationer med webbtekniker
Ad

DA354B - Introduktion till programmering: Fil- och felhantering