Filhantering

När du programmerar måste du ofta kunna spara data som en fil på hårddisken och kunna läsa en fil som redan finns där. Data som ligger i variabler, listor och andra datastrukturer försvinner ju så snart programmet körts färdigt. Filer är programmens ”långtinsminne”. De två viktigaste sakerna man kan göra med en fil är att skriva till den (w) och att läsa i den (r). Av read och write förstås.

filhantering

Filhantering?

Det finns en variant på att skriva som heter append, (a) och som betyder att man lägger till någonting i slutet på filen utan att skriva sönder det som redan finns där.

När man jobbar med en fil så sker det i tre steg, först öppnar man filen, sedan använder man den och sist så stänger man den.

Det är en god vana att stänga filer direkt när man har använt dem, så att de inte ligger öppna och tar upp systemeresurser. Skulle du glömma bort att stänga en fil någongång så är det knappast någon katastrof, för Pythons inbygda ‘garbage collector’ fixar det åt dig när den ser att filen inte används mer.

I exemplet nedan är ‘foo’ filnamnet, som du hittar med ls, och ‘utfil’ ett ”filhandtag” som används för att hålla reda på din fil internt i programmet. Du kan självklart använda andra filnamn och filhandtag. \n betyder att vi lägger in en radbrytning där.

 >>> utfil = open('foo','w')
 >>> utfil.write('Hejhopp\n')
 >>> utfil.close()
 >>>
 >>>
 ^D

Avbryt Python och kolla att filen skapades som den skulle.

 urban@falcon:~$ cat foo
 Hejhopp
 urban@falcon:~$

Då ska vi se om vi kan läsa filen också. Vi använder här namnet ‘infil’ som filhandtag, men du kan förstås hitta på ett eget namn på ditt handtag.

 >>> infil = open('foo','r')
 >>> string = infil.read()
 >>>
 >>> print string
 Hejhopp
 >>>

Läxa:

  • Skriv egna programsnuttar som gör samma sak. Använd egna filnamn och filhandtag, så att du riktigt förstår vad som är obligatoriskt och vad som du kan ändra efter behag.
  • Googla efter hur man gör append till en fil och skriv kod där du tillämpar det