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):ndarab 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.