Laboration: Filer och felhantering
Tidigare har vi låtit användaren ange all information om studenterna. Detta känns dock inte helt rimligt för administrativ personal på en stor skola att göra, därför ska vi nu istället låta programmet läsa in den informationen från en fil.
Innan du börjar koda
Läs på om filhantering i Python.
Ladda ner filen students.txt och spara den på ett bra ställe på datorn.
Uppgift
I denna laboration ska du låta användaren mata in namnet på en fil som innehåller alla studenters uppgifter. Därefter läser du in uppgifterna på filen och använder dem i ditt program som du skrev i förra laborationen. Om filen inte finns ska användaren mata in ett nytt filnamn.
Exempelutskrift
Vad heter filen med alla studenter? students.cs
Den filen fanns inte! Skriv in en ny fil: students.csv
Dessa studenter är skrivna på KTH:
Namn: Johan Tierney Personnr: 8411285597
Namn: Erik Bolin Personnr: 9910247016
Namn: Per Edenström Personnr: 8410024155
...
Vilken student vill du söka efter? Jan
Den studenten läser på KTH:
Namn: Jan Jansson Personnr: 0404040010
Krav
- Användaren ska få mata in ett nytt filnamn om filen inte hittas.
- Alla krav från laboration 5 ska vara uppfyllda.
- Din kod ska uppfylla kraven i rättningsmatrisen.
Redovisning
Denna laboration ska redovisas för en lärarassistent på ett laborationstillfälle. Information om bokning av redovisningstillfälle kommer komma upp på Canvas. På redovisningen ska du kunna köra ditt program och beskriva din kod detaljerat.
Frivillig extrauppgift: Redigera
Ge användaren möjlighet att lägga till, ändra eller ta bort objekt. I slutet av programmet ska alla objekt läsas tillbaka till en fil som användaren får skriva in namnet på.
Exempelutskrift
Vad heter filen med alla studenter? students.cs
Den filen fanns inte! Skriv in en ny fil: students.csv
Dessa studenter är skrivna på KTH:
Johan Tierney 8411285597
Erik Bolin 9910247016
Per Edenström 8410024155
...
Vill du lägga till (l), ändra (a) eller ta bort (t) ett objekt? a
Skriv in personnumret på objektet du vill ändra: 0101010000
Vill du ändra namn på Emma Löv (j/n)? j
Skriv in det nya namnet: Ebba Löv
Nu är namnet för 0101010000 ändrat till Ebba Löv!
Ange namn på den fil som uppgifterna ska sparas på: students.csv
Nu är alla uppgifter sparade på filen students.csv
Frivillig extrauppgift: Fel i filen
Lägg till felhantering när programmet läser in en fil. Om det är något som är fel i filen ska programmet varna användaren för det och hoppa vidare till nästa rad.
Exempelutskrift
Vad heter filen med alla studenter? students.cs
Den filen fanns inte! Skriv in en ny fil: students.csv
Det är fel på rad 21 i filen students.csv. Hoppar över raden.
Dessa studenter är skrivna på KTH:
Johan Tierney 8411285597
Erik Bolin 9910247016
Per Edenström 8410024155
...
Frivillig extrauppgift: CSV-formaterad fil
Ladda ner filen students.csv
Använd Pythons inbyggda csv
-modul för att läsa in en fil på
CSV-format. Då kan filen med studenter skapas i ett kalkylarksprogram som
Google Sheets, LibreOffice Calc eller Microsoft Excel.
Om resultaten även skrivs till fil i CSV-format (med hjälp av csv
-modulen),
då kan även resultatet importeras tillbaka i kalkylarksprogrammet.