Otváranie súborov
Nauč sa, ako bezpečne otvárať súbory v Pythone pomocou funkcie open().
Funkcia open()
V Pythone otvárame súbory pomocou vstavanej funkcie open(). Vracia objekt súboru, cez ktorý môžeme čítať alebo zapisovať obsah. Funkcia prijíma dva parametre: názov súboru a režim otvárania.
syntax
subor = open("nazov.txt", "rezim")

# odporúčaný spôsob: blok with (automatické zatvorenie)
with open("nazov.txt", "r") as f:
    obsah = f.read()
Výhody bloku with
Súbor otvorený pomocou kľúčového slova with sa automaticky zatvorí na konci bloku — aj v prípade chyby. Je to bezpečnejšie ako manuálne volanie f.close().
❌ Starý spôsob
f = open("data.txt")
obsah = f.read()
f.close() # môžeme zabudnúť!
✅ Odporúčaný spôsob
with open("data.txt") as f:
    obsah = f.read()
# súbor je automaticky zatvorený
Kódovanie znakov
Pre správne zobrazenie slovenských znakov (á, č, š, ž, ý...) je dôležité zadať parameter encoding="utf-8", inak môžeme dostať nesprávne znaky.
encoding
with open("slovensky.txt", "r", encoding="utf-8") as f:
    text = f.read()
    print(text)
Režimy otvárania
Klikni na niektorý režim a zobraz si podrobný popis!
Prehľad režimov
Druhý parameter funkcie open() určuje, čo chceme so súborom robiť.
Rýchly prehľad
Kedy použiť ktorý režim?
prehľad režimov
# "r"  → čítanie        (súbor musí existovať)
# "w"  → zápis          (prepíše existujúci obsah!)
# "a"  → pridávanie     (existujúci obsah zostane)
# "r+" → čítanie+zápis  (súbor musí existovať)
# "x"  → vytvorenie     (chyba, ak súbor existuje)
# "rb" → binárne čítanie (obrázky, PDF)
# "wb" → binárny zápis
Mini kvíz
Aký režim použijeme, ak chceme zapisovať od začiatku súboru, ale nechceme zmazať jeho obsah?
Čítanie súborov
Tri metódy a cyklus for — každá má svoje miesto.
Obsah simulovaného súboru
dennik.txt
Prvý riadok: ranné úlohy Druhý riadok: obedňajšie plány Tretí riadok: večerné činnosti Štvrtý riadok: program na zajtra
Tento súbor budeme čítať v nasledujúcich príkladoch. Prepínaj medzi metódami a sleduj rozdiel!
Metódy čítania
Mini kvíz
Ktorá metóda vráti všetky riadky súboru ako zoznam (list)?
Zápis do súborov
Ukladanie obsahu, prepísanie, pridávanie — a úprava existujúceho súboru.
Metódy zápisu
Stav súboru po spustení kódu:
vystup.txt
— klikni na „Spustiť kód" —
Mini kvíz
Čo sa stane, ak otvoríme existujúci súbor v režime "w"?
Zhrnutie
Všetko, čo si sa naučil — na jednom mieste.
📂
Otváranie
Vždy použi with blok a nezabudni na encoding="utf-8" pre slovenské znaky!
📖
Čítanie
read() celý obsah, readline() po riadkoch, readlines() ako zoznam, for pre veľké súbory
✏️
Zápis
"w" prepíše obsah, "a" pridáva na koniec, "r+" číta aj zapisuje na mieste
⚠️
Ošetrenie chýb
Používaj try/except na zachytenie FileNotFoundError a PermissionError
Kompletný príklad
Vytvorenie súboru, zápis, pridanie riadku a následné čítanie — všetko pohromade:
kompletný príklad
# 1. Vytvorenie súboru a zápis
riadky = ["jablko\n", "hruška\n", "slivka\n"]

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

# 2. Pridanie ďalšieho riadku
with open("ovocie.txt", "a", encoding="utf-8") as f:
    f.write("broskyňa\n")

# 3. Čítanie a výpis riadkov
with open("ovocie.txt", "r", encoding="utf-8") as f:
    for riadok in f:
        print(riadok.strip())
Výstup:
jablko hruška slivka broskyňa
Ošetrenie chýb
Vždy je dobré ošetriť možné chyby pri práci so súbormi, najmä ak názov súboru pochádza od používateľa.
try/except
try:
    with open("neexistujuci.txt", "r", encoding="utf-8") as f:
        print(f.read())
except FileNotFoundError:
    print("Súbor sa nenašiel!")
except PermissionError:
    print("Nemáš prístup k súboru!")
except UnicodeDecodeError:
    print("Chyba kódovania — skús iné encoding!")
Gratulujeme! Úspešne si dokončil učebnicu o práci so súbormi v Pythone. 🎉