Fájlkezelés¶
A Python lehetőséget biztosít különböző fájlműveletek (például fájl megnyitása, fájlból olvasás, fájlba írás stb.) elvégzésére. Az alábbiakban áttekintjük a Python legfontosabb fájlkezeléssel kapcsolatos beépített függvényeit.
Fájlkezelő függvények¶
open(path, mode)
: fájl megnyitásapath
: a megnyitni kívánt fájl elérési útvonala (szöveg)mode
: a fájlmegnyitás módja (szöveg)"r"
: olvasásra (alapértelmezett)"w"
: írásra (felülírja a fájl korábbi tartalmát)"a"
: fájl végéhez való hozzáfűzésre (megőrzi a fájl korábbi tartalmát)"x"
: kizárólagos létrehozásra (ha már létezik a fájl, akkor hibát kapunk)- egy fájlt megnyithatunk szöveges (
"t"
) vagy bináris ("b"
) módban - ezek közül a szöveges mód az alapértelmezett, mi is mindig ezt fogjuk használni
A megnyitott fájlon az alábbi műveleteket használhatjuk:
read(n)
:n
darab karakter beolvasása (ahol éppen vagyunk a fájlban)readline()
: egy sor beolvasása (ahol éppen vagyunk a fájlban)readlines()
: az egész fájl beolvasása, soronkéntwrite(szoveg)
: adott szöveg írása fájlbaclose()
: a megnyitott fájl lezárása
1 2 3 4 5 6 7 8 9 10 11 12 13 |
|
Kontextuskezelő használata¶
A fájlkezelés során sajnos mindenféle kivételek keletkezhetnek. Ekkor nem záródik le a megnyitott fájl ("beragadt fájlok").
A kivételek kezelésére használhatjuk a fentebb tanultakat.
1 2 3 4 5 6 7 8 9 10 11 |
|
Felmerül viszont a kérdés, hogy ezek segítségével lekezeljük-e az összes lehetséges hibát, ami a fájlkezelés során adódhat?
Pythonban, ha biztonságossá akarjuk tenni a fájlkezelést, akkor használjuk az úgynevezett kontextuskezelő mechanizmust a fájlkezeléskor.
A kontextuskezelő (context manager) gondoskodik a megnyitni kívánt erőforrás megfelelő megnyitásáról és lezárásáról - még akkor is, ha a fájlkezelés során kivétel keletkezik. A kontextuskezelő segítségével elkerülhetők a megnyitva maradt, "beragadt" fájlok.
Pythonban a kontextuskezelő mechanizmust a with
kulcsszóval tudjuk használni.
Egy fájl megnyitásának elfogadott módja, kontextuskezelő használatával:
1 2 3 4 |
|
Példa: A be.txt
minden sora egy-egy egész számot tartalmaz. Olvassuk be a fájl tartalmát, majd számítsuk ki a fájlban szereplő értékek átlagát! Ezt írjuk ki egy ki.txt
nevű állományba!
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
|
Feladatok¶
Az anyagrészhez tartozó gyakorló feladatsor elérhető itt.