úterý 28. dubna 2026

Knihovna OS, příkaz with

Knihovna os (Operating System) v Pythonu je naprostý základ, pokud potřebuješ, aby tvůj program komunikoval s operačním systémem. Umožňuje ti vytvářet složky, mazat soubory, pracovat s cestami nebo zjišťovat informace o systému, na kterém kód běží.

Zde je přehled toho nejdůležitějšího, co bys měl/a znát:

1. Práce se soubory a adresáři

Tato část je v praxi nejpoužívanější. Umožňuje ti spravovat strukturu složek přímo z Pythonu.

  • os.getcwd(): Vrátí aktuální pracovní adresář (Current Working Directory).

  • os.chdir('cesta/k/adresari'): Změní aktuální pracovní adresář.

  • os.listdir('.'): Vypíše seznam všech souborů a složek v daném umístění.

  • os.mkdir('nova_slozka'): Vytvoří jednu novou složku.

  • os.makedirs('slozky/pod/sebou'): Vytvoří celou cestu složek (včetně chybějících nadřazených).

  • os.remove('soubor.txt'): Smaže soubor.

  • os.rmdir('prazdna_slozka'): Smaže prázdnou složku.


2. Práce s cestami (os.path)

Cesty k souborům se na Windows (používá \) a Unixu/Linuxu (používá /) liší. Modul os.path tohle řeší za tebe, aby tvůj kód fungoval všude.

FunkcePopis
os.path.join(složka, soubor)Spojí části cesty správným lomítkem podle OS.
os.path.exists(cesta)Vrátí True, pokud soubor nebo složka existuje.
os.path.isfile(cesta)Ověří, zda je na cestě soubor.
os.path.isdir(cesta)Ověří, zda je na cestě složka.
os.path.abspath(cesta)Převede relativní cestu na absolutní.

3. Systémové informace a příkazy

Někdy potřebuješ sáhnout hlouběji do systému nebo spustit terminálový příkaz.

  • Proměnné prostředí: os.environ.get('USER') ti vytáhne jméno přihlášeného uživatele nebo jiné systémové proměnné.

  • Spuštění příkazu: os.system('echo Hello World') spustí příkaz přímo v terminálu/příkazové řádce.

  • Identifikace OS: os.name (obvykle vrací 'posix' pro Linux/Mac nebo 'nt' pro Windows).


Praktická ukázka: Bezpečné vytvoření složky a souboru

Místo složitého řetězení textu se to v Pythonu dělá takto elegantně:

import os

# 1. Definujeme název složky a souboru
folder_name = "data_export"
file_name = "vysledky.txt"

# 2. Vytvoříme cestu nezávislou na OS
path = os.path.join(folder_name, file_name)

# 3. Pokud složka neexistuje, vytvoříme ji
if not os.path.exists(folder_name):
    os.mkdir(folder_name)
    print(f"Složka {folder_name} vytvořena.")

# 4. Teď můžeme se souborem pracovat
with open(path, "w") as f:
    f.write("Ahoj z Pythonu!")

Poznámka pro moderní Python: Pokud začínáš nový projekt, mrkni také na knihovnu pathlib (dostupná od Pythonu 3.4). Je objektově orientovaná a mnozí ji považují za čitelnější nástupce modulu os.path.

 
 
 Mód 	|	Název,		Co udělá s existujícím souborem?,				|	"Co udělá, když neexistuje?"
--------------------------------------------------------------------------------------
'w' 	|	Write,		Smaže obsah a začne znovu.						|	Vytvoří ho.
'a' 	|	Append,		Ponechá obsah a píše na konec.					|	Vytvoří ho.
'r' 	|	Read,		Jen čte (nemění nic).							|	Chyba!
'r+' 	|	Read+,		Umožní číst i zapisovat (přepisuje od začátku).	|	Chyba!
'x' 	|	Exclusive,	Chyba! (Chrání existující data).				|	Vytvoří ho.

Žádné komentáře:

Okomentovat

Poznámka: Komentáře mohou přidávat pouze členové tohoto blogu.