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.