Föreläsning 5.  Idag  Kap 7 i Dawson  Filer  Felhantering med try…except.

Slides:



Advertisements
Liknande presentationer
En introduktion till programmeringsspråket Python
Advertisements

Föreläsning 9 Programmeringsteknik och Matlab 2D1312/2D1305
Avlusning Debugger (”avlusare”) Breakpoints Watch.
Array Skriv ett program som frågar följande: ”Hur många tal vill du mata in?” användaren matat in ett tal t.ex n. då frågar programmet n ggr följande.
void hittaMax(int tal[], int antal, int *pmax) { int i; ??=tal[0]; for(i=1;i??) ??=tal[i]; } int main() { int v[]={1,2,3,4,2}; int.
Jonny Karlsson PROCESSPROGRAMMERING Föreläsning 1 ( ) Innehåll: -Introduktion av kursen -Program och processer -Fildeskriptorer -Filhantering.
Jonny Karlsson PROCESSPROGRAMMERING Föreläsning 3 ( ) Innehåll: -Namngivna rörledningar.
Jonny Karlsson PROCESSPROGRAMMERING Föreläsning 3 ( ) Innehåll: -Namngivna rörledningar -Signaler -Signalhantering.
2D1311 Programmeringsteknik med PBL
Programmeringsteknik
Programmeringsteknik Föreläsning 13 Skolan för Datavetenskap och kommunikation.
Programmeringsteknik Föreläsning 6 Skolan för Datavetenskap och kommunikation.
Repetition inför provet
2D1311 Programmeringsteknik med PBL Föreläsning 7 Skolan för Datavetenskap och kommunikation.
2D1311 Programmeringsteknik med PBL Föreläsning 3 Skolan för Datavetenskap och kommunikation.
Programmeringsteknik Föreläsning 4 Skolan för Datavetenskap och kommunikation.
Filhantering Grundprincipen för filhantering Öppna filen
Föreläsning 6 Länkade lista Komplexitet Linjärsökning & binärsökning
2D1311 Programmeringsteknik med PBL Föreläsning 6 Skolan för Datavetenskap och kommunikation.
2D1311 Programmeringsteknik med PBL Föreläsning 7 Skolan för Datavetenskap och kommunikation.
2D1311 Programmeringsteknik med PBL Föreläsning 1 Skolan för Datavetenskap och kommunikation.
2D1311 Programmeringsteknik med PBL Föreläsning 4 Skolan för Datavetenskap och kommunikation.
Föreläsning 9 Sökning, sortering, grafikprogrammering.
Programmeringsteknik för K och Media
Programmeringsteknik K och Media
Programkodens uppbyggnad
1 Föreläsning 3 Datalogi för E1 / 2D1343 Repetition List List operationer Stränghantering For-slingor.
Föreläsning 2 Datalogi för E1 2D1343
Föreläsning 5 Python: argument från kommando-tolken
Föreläsning 4 Python: Definiering av egna funktioner Parametrar
Strömmar Vid läsning och skrivning används något som kallas strömmar.
Distribuerade filsystem
Programmeringsteknik
Deklarera en struct som kan användas för att representera en rät linje Använd den I main för att deklarera en variabel som du initierar så att den representerar.
Jonny Karlsson PROCESSPROGRAMMERING Föreläsning 4 ( ) Innehåll: -Programmerade rörledningar -Namngivna rörledningar.
Listor En lista är en föränderlig ordnad samling objekt.
Programspråk Två olika typer av program omvandlar högnivå till lågnivå program: Interpreterande program och kompilerande program. Python är ett interpreterande.
Funktioner, styrstrukturer, manipulering av matriser
DD1311 P ROGRAMMERINGSTEKNIK MED PBL Föreläsning 9 Skolan för Datavetenskap och kommunikation.
Föreläsning 14 ”Enkel” Filhantering.
1 Föreläsning 6 Programmeringsteknik och Matlab 2D1312/2D1305 Metoder & parametrar Array API och klassen ArrayList.
DD1310/DD1314/DA3009 Programmeringsteknik Föreläsning 2 Skolan för Datavetenskap och kommunikation.
Namnrum, räckvidd och rekursion Linda Mannila
Funktioner Linda Mannila Vad kan vi nu? Primitiva datatyper Tal, strängar, booleska värden Samlingsdatatyp Listan Utskrift Indata Felhantering.
Föreläsning 1 Reserverade ord Javas API Identifierare Litteraler Variabler Kompilering och interpretering.
Jonny Karlsson PROCESSPROGRAMMERING Föreläsning 2 ( ) Innehåll: -Processtruktur -Processklyvning och kodbyte -Avslutning av processer.
Abelli, B. (2004). Programmeringens Grunder – med exempel i C#. Lund: Studentlitteratur 11 C# I/O Streams C# använder “strömmar” för in- och utmatningsoperationer.
Kenneth Wilhelmsson 1 Logikprogrammering 10 P Onsdag 20 november 2002.
Problemlösningsmetodik
F4 - Funktioner & parametrar 1 Programmeringsteknik, 4p vt-00 Modularisering ”svarta lådor” Väl definierade arbetsuppgifter Enklare validering Enklare.
Anders Sjögren Filer - långtidslagring. Anders Sjögren Filtyper i DOS talet ett ( intx=1; ) lagrat i en –textfil, (en sekvens av tecken ( bytes )) enligt.
Programmeringsteknik Föreläsning 8 Skolan för Datavetenskap och kommunikation.
Föreläsning 7 Programmeringsteknik och Matlab DD1315 Kommandotolk parametrar Klass Instans Metod konstruktor.
2D1311 Programmeringsteknik med PBL Föreläsning 1 Skolan för Datavetenskap och kommunikation.
Programmeringsteknik Föreläsning 17 Skolan för Datavetenskap och kommunikation.
2D1311 Programmeringsteknik med PBL Föreläsning 4 Skolan för Datavetenskap och kommunikation.
Föreläsning 2 2D1312 Introduktion till Python Kap 1 och 2 i kursboken.
Programmeringsteknik
Jonny Karlsson PROCESSPROGRAMMERING Föreläsning 2 ( ) Innehåll: -Fildeskriptorer -Filhantering -Felhantering.
Föreläsning 9 Inläsning och utskrift på fil –SimpleTextFileReader –SimpleTextFileWriter Felsökning Java API.
1 Övning6 Läsning från fil till java objekt Sökning Sortering.
1 Föreläsning 2 Reserverade ord Javas API Identifierare Litteraler Variabler Kompilering och interpretering.
Föreläsning4 Repetition slingor Metoder. while-sats består av följande delar: 1. while 2. Villkor-sats (condition) 3. uttryck (statement) while-sats int.
Program indata ? utdata 1/20 Vahid Mosavat, Nada, KTH.
1 Föreläsning 4 Metoder & parametrar Array API och klassen ArrayList.
Föreläsning 9 Sökning, sortering, grafiska gränssnitt (GUI)
Anders Sjögren Programmering i ANSI-C Ett första program för att se vart vi ska...
TDP004 Objektorienterad Programmering Fö 4 Strömmar.
Föreläsning 3 Programmeringsteknik
Föreläsning 8: Exempel och problemlösning
Presentationens avskrift:

Föreläsning 5

 Idag  Kap 7 i Dawson  Filer  Felhantering med try…except

 Filer  Nästan alla program använder filer.  Exempel:  Mailprogram  Webbläsare  IDLE  Enda sättet att spara data mellan programkörningar!  Filer kan innehålla olika typer av data men vi kommer mest att titta på textfiler.

  En filvariabel lagrar  Sökvägen till filen  Vilken mod som ska användas (infil/utfil)  Aktuell position i filen Filvariabler

 Läsa från fil  Att hämta data från en fil kallas läsning..  Det här behöver man kunna:  Öppna filen för läsning infil = open(:"C\bok.txt","r")  Läsa in en rad från en fil rad = infil.readline()  Läsa in alla rader lista = infil.readlines()  Stänga filen infil.close() "r" för read = läsning

 Uppgift: Rätta felen! namn = "s.txt" fil = open(namn, r) rad = readline(fil) fil.close() namn = s.txt fil = open(namn, "r") rad = fil.readline() close(fil)

 Skriva ut på fil  Att spara data på fil kallas skrivning.  Det här behöver man kunna:  Öppna filen för läsning eller skrivning: utfil = open("C:\nytt.txt","w")  Skriva ut en rad på en fil utfil.write("Natten var mörk.")  Skriva ut en lista på en fil utfil.writelines(lista)  Stänga filen utfil.close() ”w" för write = skrivning

 Läsa med for-slinga  I Python kan man läsa igenom hela filen med en for- slinga. Exempel: fil = open("universitet.txt") antalOrd = 0 for rad in fil: orden = rad.split() antalOrd += len(orden) print(antalOrd, "ord i filen.")

 Exception  Fel att öppna en fil för läsning om den inte finns.  Felet heter IOError : >>> fil = open("kudde.txt","r") Traceback (most recent call last): File " ", line 1, in ? fil = open("kudde.txt","r") IOError:[Errno 2] No such file: 'kudde.txt'

Olika feltyper ExceptionNär uppkommer det? IOError Om man försöker öppna en fil som inte finns. SyntaxError Om man skrivit programkod som Python inte kan tolka. KeyError Om man försöker använda en nyckel som inte finns i en ordlista. NameError Om man använder en variabel utan att ha gett den ett värde.

 try-except  Man kan ta hand om fel genom att införa try-except- satser. Exempel: def öppna(namn, mod = "r"): """Öppna en fil säkert för läsning eller utskrift.""" try: fil = open(namn, mod) return fil except(IOError): print("Kan inte öppna filen",namn)

 Uppgift:Varför? Utan try...except går det inte att läsa från fil. Programmet går snabbare Man slipper stänga filen med close Man kan få felutskrift på svenska

 sortering.py  På textfilen universitet.txt finns namnen på ett antal universitet lagrade: University of Cape Town St. Petersburg State University Massachusetts Institute of Technology …  Programmet ska läsa in alla rader från filen, konvertera till gemena, sortera dom i bokstavsordning, och skriva ut på en annan fil

  öppna(filnamn, mod)  Öppnar en fil.  Indata: filnamnet (sträng) Utdata: en filvariabel  läsFil(filvariabel)  Läser alla rader från filen.  Indata: filvariabel Utdata: lista med gemena rader  skrivFil(filvariabel,lista)  Skriver ut listan på filen  Indata: filvariabel, lista med strängar Utdata: - Uppdelning i funktioner

def läsFil(infil): """Läs in alla rader från infil""" lista = [] for rad in infil: lista.append(rad.strip().lower()) infil.close() return lista

def skrivFil(lista, utfil): """Skriver ut lista på utfil""" for rad in lista: utfil.write(rad + "\n") utfil.close()

def main(): infil = öppna("universitet.txt","r") lista = läsFil(infil) lista.sort() utfil = öppna("sorterat.txt","w") skrivFil(lista,utfil) #Anropar main main()