5. Filer
Programmeringsteknik
Versionen från 3 juli 2007 kl. 13.12 (redigera) KTH.SE:u1ndpe5c (Diskussion | bidrag) ← Gå till föregående ändring |
Nuvarande version (11 februari 2008 kl. 10.26) (redigera) (ogör) KTH.SE:u1rp004j (Diskussion | bidrag) m |
||
(3 mellanliggande versioner visas inte.) | |||
Rad 11: | Rad 11: | ||
Kataloger används för att organisera filer och program. Kataloger kan innehålla andra kataloger. T ex kan man spara alla filer som har skapats i samband med sommarkursen under katalogen ”sommarkurs”. Strukturen kallas i datorsammanhang ofta för ett filträd. | Kataloger används för att organisera filer och program. Kataloger kan innehålla andra kataloger. T ex kan man spara alla filer som har skapats i samband med sommarkursen under katalogen ”sommarkurs”. Strukturen kallas i datorsammanhang ofta för ett filträd. | ||
- | Länkar används t ex för att man ska kunna hitta samma fil på flera ställen. En bildfil kan ta stor plats och en populär bild kan man vilja ha med på många ställen. För att slippa kopiera bilden lägger man då istället länkar till den. Länkarntar nästan ingen plats alls. | + | Länkar används t ex för att man ska kunna hitta samma fil på flera ställen. En bildfil kan ta stor plats och en populär bild kan man vilja ha med på många ställen. För att slippa kopiera bilden lägger man då istället länkar till den. Länkarna tar nästan ingen plats alls. |
Rad 28: | Rad 28: | ||
* Radering av filer. | * Radering av filer. | ||
- | Allt detta kan man också göre i ett pythonprogram. I den här kursen begränsar vi oss dock till att visa hur man kan skapa textfiler och läsa och skriva i sådana filer. | + | Allt detta kan man också göra i ett pythonprogram. I den här kursen begränsar vi oss dock till att visa hur man kan skapa textfiler och läsa och skriva i sådana filer. |
Rad 53: | Rad 53: | ||
Om man vill skapa en helt ny fil med namnet <code>kollegor.txt</code> så kan man göra så här. Om det redan finns en fil med namnet <code>kollegor.txt</code> så skriver man istället över innehållet i den filen. '''Var försiktig.''' | Om man vill skapa en helt ny fil med namnet <code>kollegor.txt</code> så kan man göra så här. Om det redan finns en fil med namnet <code>kollegor.txt</code> så skriver man istället över innehållet i den filen. '''Var försiktig.''' | ||
- | <pre>file = open('kollegor.txt', 'wU') | + | <pre>file = open('kollegor.txt', 'w') |
file.write('Gustav Hast\n') | file.write('Gustav Hast\n') | ||
file.write('Ingemar Johansson\n') | file.write('Ingemar Johansson\n') | ||
Rad 63: | Rad 63: | ||
==Test== | ==Test== | ||
- | TODO | + | Dags för test nummer 5. Testet hittar du som vanligt under rubriken Examination |
+ | på kursens förstasida. Även detta test rättas automatiskt och du har möjlighet | ||
+ | att göra om testet flera gånger om du inte lyckas på första försöket. |
Nuvarande version
Innehåll |
[redigera] Filer
Information som man vill ha kvar på en dator sparas på fil. Det kan t ex röra sig om ett brev som har skapats med hjälp av ett ordbehandlingsprogram, en bild som har skapats av ett ritningsprogram eller en kamera osv. Filer sparas på långtidsminnen som t ex datorns skivminne (hårddisken). När man sparat en fil på hårddisken kommer filen att finnas kvar där även när man har startat om datorn eller t ex när det blir strömavbrott. Därför är det bra att spara den programkod man skriver på en fil för senare bearbetning. Dels för att det sällan blir rätt första gången, dels för att när man väl provkört kommer man på fler saker man önskar av programmet.
Filer kan delas upp i tre sorter:
- Vanliga filer: som innehåller data (t ex text eller bildinformation).
- Katalog eller mapp: som innehåller andra filer.
- Länkar, genvägar eller alias: En fil som refererar till en fil.
Kataloger används för att organisera filer och program. Kataloger kan innehålla andra kataloger. T ex kan man spara alla filer som har skapats i samband med sommarkursen under katalogen ”sommarkurs”. Strukturen kallas i datorsammanhang ofta för ett filträd.
Länkar används t ex för att man ska kunna hitta samma fil på flera ställen. En bildfil kan ta stor plats och en populär bild kan man vilja ha med på många ställen. För att slippa kopiera bilden lägger man då istället länkar till den. Länkarna tar nästan ingen plats alls.
[redigera] Filhantering
På nästan alla datorer finns det ett grafiskt användargränssnitt (det du ser på skärmen) som kan användas för att organisera filer med hjälp av musen, kortkommandon eller ett filhanteringsprogram.
Filer, kataloger och länkar har då grafiska symboler som kallas för ikoner. Följande bilder visar hur olika ikoner ser ut i ett Mac/OS X operativsystem:
I programmeringssammanhang är det väldigt vanligt att använda tangentbordskommandon för filhanteringen, t ex för att utföra:
- Förflyttning i filträdet.
- Kopiering av filer.
- Radering av filer.
Allt detta kan man också göra i ett pythonprogram. I den här kursen begränsar vi oss dock till att visa hur man kan skapa textfiler och läsa och skriva i sådana filer.
[redigera] Textfiler i Python
Antag att det redan finns en fil som heter kompisar.txt
med följande innehåll:
Anna Bok Caesar Davidson Erling Franson
Här är ett pythonprogram som läser innehållet i filen, rad för rad, och lagrar strängarna i en lista med namnet friends
.
friends = [] file = open('kompisar.txt', 'rU') for line in file: friends.append(line) file.close()
Funktionen open
öppnar filen men namnet kompisar.txt
för läsning (r
betyder "read", U
betyder "Universal newline mode" och är en mekanism i Python som översätter de olika tecknen för radslut som förekommer i olika operativsystem till standardtecknet \n
). Med hjälp av en for
-sats går vi igenom filen rad för rad.
När man är klar med filen så bör man stänga den med hjälp av funktionen close
. Så länge en fil är öppen så har ditt program ensamrätt på den här filen och andra processor på datorn kan inte komma åt den. Om man glömmer att göra close()
så sker det automatiskt när programmet avslutas.
Om man vill skapa en helt ny fil med namnet kollegor.txt
så kan man göra så här. Om det redan finns en fil med namnet kollegor.txt
så skriver man istället över innehållet i den filen. Var försiktig.
file = open('kollegor.txt', 'w') file.write('Gustav Hast\n') file.write('Ingemar Johansson\n') file.close()
I det här fallet så ger man parametern 'w'
(som betyder 'write') till open
-funktionen. Observera att man själv måste skriva ut radslutstecken om man vill att filen ska innehålla flera rader. Tecknet \n
är ett specialtecken som används i strängar för att markera ett radslut.
[redigera] Test
Dags för test nummer 5. Testet hittar du som vanligt under rubriken Examination på kursens förstasida. Även detta test rättas automatiskt och du har möjlighet att göra om testet flera gånger om du inte lyckas på första försöket.