Python: Állománykezelés

A program futásakor az adatok a RAM-ban (Random Access Memory) tárolódnak. A RAM viszonylag gyors és olcsó, de a számítógép kikapcsolása után az adatok elvesznek. Ahhoz, hogy az adatok mindig elérhetők legyenek, egy ún. nemfelejtő adattárolóra kell őket kiírni. (Ezek lehetnek pl. SSD, HDD, pendrive, CD, stb.)
A nemfelejtő adattárolókon tárolt adatokat fájloknak nevezzük. Fájlok olvasásával és írásával, a programok el tudják menteni az információkat a programfutások között.
A fájlok kezelése nagyon hasonlít egy füzet használatához. Először a füzetet ki kell nyitni. Ha végeztünk, akkor be kell zárnunk. Amíg a füzet nyitva van, írhatunk bele, illetve olvashatunk belőle. A füzet tulajdonosa bármelyik esetben tudja, hogy hol tart benne. A füzet tartalmát egy meghatározott sorrendben tudja olvasni, vagy bizonyos részeket át is ugorhat.

Fájlok megnyitása

Mielőtt bármiféle műveletet végeznénk egy fájlon/fájllal, meg kell azt nyitni. Erre az open() függvényt kell használunk, melynek három paramétert adhatunk meg.

1. paraméter: A fájl neve (kiterjesztéssel együtt!), esetlegesen az elérési úttal kiegészítve.

2. paraméter: A fájl megnyitásának módja.

  • r: Olvasás (read) a fájlból. Ez az alapértelmezett mód.
  • r+: Olvasásra és írásra nyitja meg a fájlt.
  • w: Írás (write) a fájlba. Vigyázat!!! A fájl tartalmát felülírja. Ha nem létezik még az adott nevű fájl, akkor létrehozza azt.
  • w+: Írásra és olvasásra nyit.
  • a: Írás a fájlba úgy, hogy az adatokat a fájl végéhez hozzáfűzi (append).
  • a+: Hozzáfűzésre és olvasásra nyit.
  • rb, rb+, wb, wb+, ab, ab+: Azonos az előzőkkel, csak binárisan nyitja meg a fájlt.

3. paraméter: A kódolás megadása. Pl.: encoding=”utf-8″, vagy encoding=”ascii”, vagy encoding=”Windows-1250″ (Nyilván csak szöveges fájlok esetében van értelme.)

Az open() metódus egy fájl objektumot ad vissza.

Régebbi módszer

f = open(„szoveg.txt”, „r”)

Munka az f fájl tartalmával.

f.close()

Ennél a módszernél, ha valamilyen kivétel lép fel, akkor a fájl nem lesz rendesen lezárva.

Újabb módszer

with open(„szoveg.txt”, „r”) as f:

Munka az f fájl tartalmával.

Itt bármilyen kivétel esetén is biztosított, hogy a fájl le lesz zárva. A close() függvényt sem muszáj explicit módon meghívni.

Egy fájl objektum legfontosabb metódusai

close(): Lezárja a fájlt.
read(): Olvas a fájlból. Bináris fájlok esetén a read(n) n bájtot olvas be. Ha n értékét nem adjuk meg, akkor az egész fájlt beolvassa.
readline(): Egy teljes sor beolvasása a fájlból a sort lezáró LF karakterrel együtt.
write(): Írás a fájlba.
tell(): A fájl-pozíció mutató értékét adja meg.
seek(): Beállítja a fájl-pozíció mutatót.

Egy példa program