Fájlok megnyitása
Tanuld meg, hogyan nyithatsz meg fájlokat Pythonban biztonságosan.
Az open() függvény
A Pythonban fájlokat az open() beépített függvénnyel nyitunk meg. Visszaad egy fájlobjektumot, amelyen keresztül olvashatjuk vagy írhatjuk a tartalmat. Két paramétert kap: a fájlnevet és a megnyitási módot.
szintaxis
fajl = open("fajlnev.txt", "mod")

# ajánlott mód: with blokk (automatikus lezárás)
with open("fajlnev.txt", "r") as f:
    tartalom = f.read()
A with blokk előnyei
A with kulcsszóval megnyitott fájl automatikusan bezáródik a blokk végén — még hiba esetén is. Ez biztonságosabb, mint a manuális f.close() hívás.
❌ Régi módszer
f = open("adat.txt")
tartalom = f.read()
f.close() # elfelejthetjük!
✅ Ajánlott módszer
with open("adat.txt") as f:
    tartalom = f.read()
# automatikusan lezárva
Kódolás megadása
Magyar ékezetes karakterekhez (á, é, ő, ű stb.) érdemes az encoding="utf-8" paramétert megadni, különben hibás karaktereket kaphatunk.
encoding
with open("magyar.txt", "r", encoding="utf-8") as f:
    szoveg = f.read()
    print(szoveg)
Megnyitási módok
Kattints egy módra a részletes leírásért!
Módok áttekintése
Az open() második paramétere határozza meg, mit csinálunk a fájllal.
Módok összefoglalása
Gyors áttekintés — mikor melyiket használd?
módok táblázata
# "r"  → olvasás       (fájl léteznie kell)
# "w"  → írás          (felülírja a tartalmat!)
# "a"  → hozzáfűzés    (meglévő tartalom megmarad)
# "r+" → olvasás+írás  (fájl léteznie kell)
# "x"  → létrehozás    (hibát dob, ha már létezik)
# "rb" → bináris olvasás (képek, PDF)
# "wb" → bináris írás
Mini kvíz
Melyik móddal nyitjuk meg a fájlt, ha az elejétől akarunk írni, de nem akarjuk törölni a tartalmát?
Fájlok olvasása
Három metódus + a for ciklus — mindegyiknek megvan a maga helye.
Szimulált fájl tartalom
naplo.txt
Első sor: reggeli feladatok Második sor: déli tervek Harmadik sor: esti teendők Negyedik sor: holnapi program
Ezt a fájlt fogjuk olvasni az alábbi példákban. Válts a metódusok között!
Olvasási metódusok
Mini kvíz
Melyik metódus adja vissza a fájl összes sorát egy listaként?
Fájlba írás
Tartalom mentése, felülírás, hozzáfűzés — és a fájl módosítása.
Írási metódusok
Fájl állapota a kód futtatása után:
kimenet.txt
— kattints a „Kód futtatása" gombra —
Mini kvíz
Mi történik, ha "w" módban nyitunk meg egy már létező fájlt?
Összefoglalás
Minden amit tanultál — egy helyen.
📂
Megnyitás
open() — mindig with blokkal, és add meg az encoding="utf-8"-t!
📖
Olvasás
read() egészben, readline() soronként, readlines() listában, for nagy fájlokhoz
✏️
Írás
"w" felülír, "a" hozzáfűz, "r+" olvas és ír helyben
⚠️
Hibakezelés
try/except blokkal kezeld a FileNotFoundError és PermissionError eseteket
Teljes példaprogram
Létrehozás, feltöltés, hozzáfűzés, majd olvasás — minden egy helyen:
teljes példa
# 1. Fájl létrehozása és feltöltése
sorok = ["alma\n", "körte\n", "szilva\n"]

with open("gyumolcsok.txt", "w", encoding="utf-8") as f:
    f.writelines(sorok)

# 2. Hozzáfűzés
with open("gyumolcsok.txt", "a", encoding="utf-8") as f:
    f.write("barack\n")

# 3. Olvasás és sorok kiírása
with open("gyumolcsok.txt", "r", encoding="utf-8") as f:
    for sor in f:
        print(sor.strip())
Kimenet:
alma körte szilva barack
Hibakezelés
Érdemes mindig kezelni a lehetséges fájlhibákat, különösen ha a fájl neve a felhasználótól érkezik.
try/except
try:
    with open("nem_letezo.txt", "r", encoding="utf-8") as f:
        print(f.read())
except FileNotFoundError:
    print("A fájl nem található!")
except PermissionError:
    print("Nincs hozzáférési jogod a fájlhoz!")
except UnicodeDecodeError:
    print("Kódolási hiba — próbálj más encoding-ot!")
Gratulálok! Elvégezted a Python állománykezelés tananyagot. 🎉