Fájlkezelés

Műveletek szöveges fájlokkal

A fájlok kezelése alapvetően három lépésből áll:

  • Megnyitás írásra vagy olvasásra
  • Adatok (sorok) írása vagy olvasása
  • Lezárás

Fájl nyitása/zárása:

open(fájl,[mód],[kódolás]) ---> fileObjektum (egy mutató a fájl elejére, mely I/O művelet során automatikusan "mozog" előre)
Lehetséges módok:
  • 'r' (olvasásra megnyitás - alapértelmezett),
  • 'w' (írásra megnyitás - ha a fájl már létezik, teljes tartalma törlődik),
  • 'a' (hozzáírásra, bővítésre megnyitás - ha a fájl nem létezik, akkor létrejön),
  • 'r+' (megnyitás olvasásra és írásra is).
Kódolás:

Megadhatjuk a fájl kódolását is. Pl.: encoding = "utf-8" (További információk)

Fájl zárása:

fileObjektum.close()


Szöveges fájlok olvasása/írása

A fájl megnyitása után létrehozott fileObjektum egy fájlmutató. Kezdetben a fájl elején helyezkedik el, és előre lép, amikor olvasási/írási műveleteket hajtunk végre.

Sorok olvasása szövegfájlból

(fileObjektum, röviden: file)

file.readline() ---> string (szöveg): szövegként beolvas egy sort a fájlból (a sorvégi entert is), és a mutató a következő sorhoz lép. Üres szöveget ad vissza a fájl vége (EOF) után.

file.readlines() ---> [str]: az összes sort beolvassa. A sorokból egy szöveges listát hoz létre.

file.read() ---> str: a teljes fájlt egy szövegbe olvassa.

Sor írása egy szövegfájlba

file.write(str) ---> int: Beírja a stringet a fájlba és visszaadja a beírt karakterek számát. Szükség esetén a sorvégi "entert" is ki kell írni ('\n').


ALAPLÉPÉSEK - Python példa (letöltés: fajl_demo.py)


Fájlkezelés az érettségin

Az érettségin szöveges fájlokat kell kezelnünk. A feladatok megoldásának kulcskérdése az adatok helyes kezelése, ezért fontos ez a fejezet!

A bennük elhelyezkedő adatokat valamilyen adatszerkezetbe kell beolvasnunk. Ahogy az adatok a fájlban elrendeződnek, az már sugall egyfajta adatszerkezetet is ---> lista vagy listák listája (más nyelvekre is gondolva: tömb, mátrix, valamilyen struktúra tömbje, mátrixa).

Három tipikus fájltartalmon keresztül az alábbi példa bemutatja, hogyan kezeljük az adott helyzetet.

(letöltés: input01.txt, input02.txt, input03.txt, input04.txt)

Van egy "negyedik" eset is, amikor a fájlban található adatok "szótárra" utalnak, azaz van egy olyan adatcsoport, amihez a többi adat elkülöníthetően köthető. A példa állományban minden sor első adata ilyen "kulcs", amihez a többi adat hozzárendelhető.

A példában "klasszikus" és ún. "gyors" vagy "rövid" megoldást is találtok. Erre más lapon majd visszatérünk, itt csak "csemege". Akinek felkelti az érdeklődését, az nézzen utána... :)

FÁJLKEZELÉS - Python példa (letöltés: fajlkezeles.py)




FÁJLKEZELÉS alapok - C++ példa (letöltés: file_demoC++.cpp) (forrásfájlok letöltése: teszt2.txt, teszt3.txt, teszt4.txt)