Hösten 2009
Dagens lektion Formattera text 2
3
REPETITION AV FILER Filer på en dator En fil består av en sekvens av digitalt data (ettor och nollor). Upp till program att tolka dessa siffror. Skillnad mellan binära filer och textfiler. Skillnad mellan 5 och 5. Siffran 5 (binärt 00000101) Textteknet 5 ofta representerat av 53 (binärt 00110101) Varje texttecken representerat av 1-4 byte. En textfil en sekvens av siffror som tolkas av program till tecken och bokstäver. 4
REPETITION AV FILER Teckentabeller 5
REPETITION AV FILER Vad innebär filhantering? Ett samlingsbegrepp för att läsa data från och skriva data till filer. Centralt i programmering De flesta språk har smidiga funktioner för att göra detta enkelt. All användning av filer följer samma arbetsordning 1. Öppna filen 2. Använda filen (t.ex. läsa eller skriva till filen) 3. Stänga filen 6
REPETITION AV FILER Öppna en fil Innebär att man gör filen redo för operativsystemet att användas. Se om den existerar, i annat fall eventuellt skapa den Öppna en kanal till filen så att data kan hämtas från eller skickas till den Fyra vanliga sätt att använda en fil Läsa från fil (kräver att den finns) Lägga till mer data i slutet av filen Skriva till fil (skapar filen om den inte finns, annars skriva över gammal) Både läsa och skriva till en fil. 7
REPETITION AV FILER Funktionen open 8 Öppnar en kanal till filen Tar två argument Namnet på filen (sökvägen) Hur filen ska öppnas r read Bara läsning från existerande fil a append Lägga till i slutet av existerande fil w write Bara skriva r+ read and write Läsa och skriva b binary Används tillsammans med de övriga om filen är binär.
REPETITION AV FILER Skriva till fil f = open( file.txt, w ) # oppnar filen f.write( Some # Skriv en rad foljt av nyradstecken f.close() Stänger filen 9
REPETITION AV FILER Läsa från fil f = open( file.txt, r ) # Öppnar filen print f.read( # Läser hela filen i en lång # sträng som skrivs ut f.close() # Stänger filen f = open( file.txt, r ) print f.readline() print f.readline() f.close() # Öppnar filen # Läser första raden som skr # Läser andra raden som skri # Stänger filen f = open( file.txt, r ) # Öppnar filen for line in f.readlines(): # Läser alla rader radvis print line f.close() # Stänger filen 10
Formattera text 11
FORMATTERA TEXT Skriva till fil Två sätt f.write print Glöm inte att först öppna filen med w eller a 12
FORMATTERA TEXT Skriva till fil Två sätt f.write print Glöm inte att först öppna filen med w eller a 13
FORMATTERA TEXT f.write Tar en sträng som argument. Värden som inte redan är en sträng måste konverteras import sys f = open(sys.arv[0], w ) f.write( Want to print a value ) f.write(str(1.2)) f.close() 14
FORMATTERA TEXT print Formaterade utskrifter med print fungerar även för filer Åter lite konstig syntax import sys f = open(sys.argv[0], w ) print >>f, Want to print a value %.3f % 1.2 f.close() 15
FORMATTERA TEXT Specialtecken Behov av att kunna uttrycka andra tecken än siffror och bokstäver Ny rad i textfiler \n Tabulatortecken \t import sys f = open(sys.argv[0], w ) print >>f, Want to print a value %.3f\n % 1.2 print >>f, And another value %.3f\n % 3.73 f.close() 16