SlideShare a Scribd company logo
1 of 38
Download to read offline
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?
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!
Programkrascher
Ni har nog varit med om det?
När får vi fel?
När brukar era fel dyka upp?
Designa för fel.
Alla gör fel, förr eller senare. Tänk användbarhet.
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?
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

Similar to HT23 - DA354A - Fil- och felhantering

HT15, DA354A - Introduktion till Python
HT15, DA354A - Introduktion till PythonHT15, DA354A - Introduktion till Python
HT15, DA354A - Introduktion till PythonAnton Tibblin
 
HT16 - DA354A - Introduktion till programmering (Python)
HT16 - DA354A - Introduktion till programmering (Python)HT16 - DA354A - Introduktion till programmering (Python)
HT16 - DA354A - Introduktion till programmering (Python)Anton Tibblin
 
HT22 - DA354A - Listor & lexikon
HT22 - DA354A - Listor & lexikonHT22 - DA354A - Listor & lexikon
HT22 - DA354A - Listor & lexikonAnton Tibblin
 
HT23 - DA354A - Listor och lexikon
HT23 - DA354A - Listor och lexikonHT23 - DA354A - Listor och lexikon
HT23 - DA354A - Listor och lexikonAnton Tibblin
 
HT16 - DA354A - Listor & Lexikon
HT16 - DA354A - Listor & LexikonHT16 - DA354A - Listor & Lexikon
HT16 - DA354A - Listor & LexikonAnton Tibblin
 
Presentation dokumenthantering workshop 27 april 2016
Presentation dokumenthantering workshop 27 april 2016Presentation dokumenthantering workshop 27 april 2016
Presentation dokumenthantering workshop 27 april 2016Lars Blixt
 
Tjejer kodar 100 - Dag 3 - Python
Tjejer kodar 100 - Dag 3 - PythonTjejer kodar 100 - Dag 3 - Python
Tjejer kodar 100 - Dag 3 - PythonEmil Stenström
 
Metodik - Versionshantering, pakethantering, paketering och testning
Metodik - Versionshantering, pakethantering, paketering och testningMetodik - Versionshantering, pakethantering, paketering och testning
Metodik - Versionshantering, pakethantering, paketering och testningJohan Holmberg
 

Similar to HT23 - DA354A - Fil- och felhantering (9)

HT15, DA354A - Introduktion till Python
HT15, DA354A - Introduktion till PythonHT15, DA354A - Introduktion till Python
HT15, DA354A - Introduktion till Python
 
HT16 - DA354A - Introduktion till programmering (Python)
HT16 - DA354A - Introduktion till programmering (Python)HT16 - DA354A - Introduktion till programmering (Python)
HT16 - DA354A - Introduktion till programmering (Python)
 
HT22 - DA354A - Listor & lexikon
HT22 - DA354A - Listor & lexikonHT22 - DA354A - Listor & lexikon
HT22 - DA354A - Listor & lexikon
 
HT23 - DA354A - Listor och lexikon
HT23 - DA354A - Listor och lexikonHT23 - DA354A - Listor och lexikon
HT23 - DA354A - Listor och lexikon
 
HT16 - DA354A - Listor & Lexikon
HT16 - DA354A - Listor & LexikonHT16 - DA354A - Listor & Lexikon
HT16 - DA354A - Listor & Lexikon
 
Presentation dokumenthantering workshop 27 april 2016
Presentation dokumenthantering workshop 27 april 2016Presentation dokumenthantering workshop 27 april 2016
Presentation dokumenthantering workshop 27 april 2016
 
Tjejer kodar 100 - Dag 3 - Python
Tjejer kodar 100 - Dag 3 - PythonTjejer kodar 100 - Dag 3 - Python
Tjejer kodar 100 - Dag 3 - Python
 
Metodik - Versionshantering, pakethantering, paketering och testning
Metodik - Versionshantering, pakethantering, paketering och testningMetodik - Versionshantering, pakethantering, paketering och testning
Metodik - Versionshantering, pakethantering, paketering och testning
 
Openoffice
OpenofficeOpenoffice
Openoffice
 

More from Anton Tibblin

2024 - Localstorage & cookies Geolocation Mediahantering.pdf
2024 - Localstorage & cookies Geolocation Mediahantering.pdf2024 - Localstorage & cookies Geolocation Mediahantering.pdf
2024 - Localstorage & cookies Geolocation Mediahantering.pdfAnton Tibblin
 
VT24 - jQuery & Ajax - Flerplattformsapplikationer med webbtekniker
VT24 - jQuery & Ajax - Flerplattformsapplikationer med webbteknikerVT24 - jQuery & Ajax - Flerplattformsapplikationer med webbtekniker
VT24 - jQuery & Ajax - Flerplattformsapplikationer med webbteknikerAnton Tibblin
 
VT24 - Responsiv design & Ramverk inom webbutveckling
VT24 - Responsiv design & Ramverk inom webbutvecklingVT24 - Responsiv design & Ramverk inom webbutveckling
VT24 - Responsiv design & Ramverk inom webbutvecklingAnton Tibblin
 
DA395A - VT24 - JavaScript & Document object model
DA395A - VT24 - JavaScript & Document object modelDA395A - VT24 - JavaScript & Document object model
DA395A - VT24 - JavaScript & Document object modelAnton Tibblin
 
VT24 - DA395A - Kursintroduktion: Flerplattformsapplikationer med webbtekniker
VT24 - DA395A - Kursintroduktion: Flerplattformsapplikationer med webbteknikerVT24 - DA395A - Kursintroduktion: Flerplattformsapplikationer med webbtekniker
VT24 - DA395A - Kursintroduktion: Flerplattformsapplikationer med webbteknikerAnton Tibblin
 
HT23 - DA354A - Webbprogrammering med Python
HT23 - DA354A - Webbprogrammering med PythonHT23 - DA354A - Webbprogrammering med Python
HT23 - DA354A - Webbprogrammering med PythonAnton Tibblin
 
HT23 - DA354A - Kursintroduktion
HT23 - DA354A - KursintroduktionHT23 - DA354A - Kursintroduktion
HT23 - DA354A - KursintroduktionAnton Tibblin
 
HT23 - DA106A - Användbarhet (2)
HT23 - DA106A - Användbarhet (2)HT23 - DA106A - Användbarhet (2)
HT23 - DA106A - Användbarhet (2)Anton Tibblin
 
HT23 - DA106A - Användbarhet 1
HT23 - DA106A - Användbarhet 1HT23 - DA106A - Användbarhet 1
HT23 - DA106A - Användbarhet 1Anton Tibblin
 
HT23 - DA106A - Ramverk & Bibliotek
HT23 - DA106A - Ramverk & BibliotekHT23 - DA106A - Ramverk & Bibliotek
HT23 - DA106A - Ramverk & BibliotekAnton Tibblin
 
HT23 - DA106A - Introduktion till JavaScript
HT23 - DA106A - Introduktion till JavaScriptHT23 - DA106A - Introduktion till JavaScript
HT23 - DA106A - Introduktion till JavaScriptAnton Tibblin
 
HT23 - DA106A - Responsiv webbutveckling
HT23 - DA106A - Responsiv webbutvecklingHT23 - DA106A - Responsiv webbutveckling
HT23 - DA106A - Responsiv webbutvecklingAnton Tibblin
 
HT23 - DA106A - Layout (2)
HT23 - DA106A - Layout (2)HT23 - DA106A - Layout (2)
HT23 - DA106A - Layout (2)Anton Tibblin
 
HT23 - DA106A - Layout med CSS (1)
HT23 - DA106A - Layout med CSS (1)HT23 - DA106A - Layout med CSS (1)
HT23 - DA106A - Layout med CSS (1)Anton Tibblin
 
Introduktion till CSS
Introduktion till CSSIntroduktion till CSS
Introduktion till CSSAnton Tibblin
 
HTML - Tabeller och formulär
HTML - Tabeller och formulärHTML - Tabeller och formulär
HTML - Tabeller och formulärAnton Tibblin
 
Introduktion till HTML
Introduktion till HTMLIntroduktion till HTML
Introduktion till HTMLAnton Tibblin
 
LocalStorage - GeoLocation - Media
LocalStorage - GeoLocation - MediaLocalStorage - GeoLocation - Media
LocalStorage - GeoLocation - MediaAnton Tibblin
 

More from Anton Tibblin (20)

2024 - Localstorage & cookies Geolocation Mediahantering.pdf
2024 - Localstorage & cookies Geolocation Mediahantering.pdf2024 - Localstorage & cookies Geolocation Mediahantering.pdf
2024 - Localstorage & cookies Geolocation Mediahantering.pdf
 
VT24 - jQuery & Ajax - Flerplattformsapplikationer med webbtekniker
VT24 - jQuery & Ajax - Flerplattformsapplikationer med webbteknikerVT24 - jQuery & Ajax - Flerplattformsapplikationer med webbtekniker
VT24 - jQuery & Ajax - Flerplattformsapplikationer med webbtekniker
 
VT24 - Responsiv design & Ramverk inom webbutveckling
VT24 - Responsiv design & Ramverk inom webbutvecklingVT24 - Responsiv design & Ramverk inom webbutveckling
VT24 - Responsiv design & Ramverk inom webbutveckling
 
DA395A - VT24 - JavaScript & Document object model
DA395A - VT24 - JavaScript & Document object modelDA395A - VT24 - JavaScript & Document object model
DA395A - VT24 - JavaScript & Document object model
 
VT24 - DA395A - Kursintroduktion: Flerplattformsapplikationer med webbtekniker
VT24 - DA395A - Kursintroduktion: Flerplattformsapplikationer med webbteknikerVT24 - DA395A - Kursintroduktion: Flerplattformsapplikationer med webbtekniker
VT24 - DA395A - Kursintroduktion: Flerplattformsapplikationer med webbtekniker
 
HT23 - DA354A - Webbprogrammering med Python
HT23 - DA354A - Webbprogrammering med PythonHT23 - DA354A - Webbprogrammering med Python
HT23 - DA354A - Webbprogrammering med Python
 
HT23 - DA354A - Kursintroduktion
HT23 - DA354A - KursintroduktionHT23 - DA354A - Kursintroduktion
HT23 - DA354A - Kursintroduktion
 
HT23 - DA106A - Användbarhet (2)
HT23 - DA106A - Användbarhet (2)HT23 - DA106A - Användbarhet (2)
HT23 - DA106A - Användbarhet (2)
 
HT23 - DA106A - Användbarhet 1
HT23 - DA106A - Användbarhet 1HT23 - DA106A - Användbarhet 1
HT23 - DA106A - Användbarhet 1
 
HT23 - DA106A - Ramverk & Bibliotek
HT23 - DA106A - Ramverk & BibliotekHT23 - DA106A - Ramverk & Bibliotek
HT23 - DA106A - Ramverk & Bibliotek
 
HT23 - DA106A - Introduktion till JavaScript
HT23 - DA106A - Introduktion till JavaScriptHT23 - DA106A - Introduktion till JavaScript
HT23 - DA106A - Introduktion till JavaScript
 
HT23 - DA106A - Responsiv webbutveckling
HT23 - DA106A - Responsiv webbutvecklingHT23 - DA106A - Responsiv webbutveckling
HT23 - DA106A - Responsiv webbutveckling
 
HT23 - DA106A - Layout (2)
HT23 - DA106A - Layout (2)HT23 - DA106A - Layout (2)
HT23 - DA106A - Layout (2)
 
HT23 - DA106A - Layout med CSS (1)
HT23 - DA106A - Layout med CSS (1)HT23 - DA106A - Layout med CSS (1)
HT23 - DA106A - Layout med CSS (1)
 
Introduktion till CSS
Introduktion till CSSIntroduktion till CSS
Introduktion till CSS
 
HTML - Tabeller och formulär
HTML - Tabeller och formulärHTML - Tabeller och formulär
HTML - Tabeller och formulär
 
Introduktion till HTML
Introduktion till HTMLIntroduktion till HTML
Introduktion till HTML
 
Kursintroduktion
KursintroduktionKursintroduktion
Kursintroduktion
 
LocalStorage - GeoLocation - Media
LocalStorage - GeoLocation - MediaLocalStorage - GeoLocation - Media
LocalStorage - GeoLocation - Media
 
jQuery & Ajax
jQuery & AjaxjQuery & Ajax
jQuery & Ajax
 

HT23 - DA354A - Fil- och felhantering