Chyba při vytváření nového adresáře pomocí os.mkdir() v neexistujícím adresáři
os.mkdir()
Tato metoda se používá k vytvoření adresáře (složky) v jazyce Python. Pokud se pokusíte vytvořit nový adresář v neexistujícím adresáři, dojde k chybě.(FileNotFoundError
)
import os os.mkdir('not_exist_dir/new_dir') # FileNotFoundError
Vytváření adresářů rekurzivně pomocí os.madeirs()
Pokud místo os.mkdir() použijete os.makedirs(), vytvoří se meziadresář, takže můžete rekurzivně vytvořit hluboký hierarchický adresář.
os.makedirs('not_exist_dir/new_dir')
V případě tohoto příkladu se vytvoří všechny najednou. Je v pořádku, pokud existuje více nových mezilehlých adresářů.
- mezilehlý adresář:
not_exist_dir
- závěrečný adresář:
new_dir
Pokud však koncový adresář již existuje, dojde k chybě.(FileExistsError
)
os.makedirs('exist_dir/exist_dir') # FileExistsError
Pokud existuje argument exist_ok
Od verze Python 3.2 byl přidán argument exist_ok, a pokud exist_ok=True, nedojde k chybě, ani když koncový adresář již existuje. Pokud koncový adresář neexistuje, bude vytvořen nový, a pokud existuje, nebude provedeno nic. To je výhodné, protože nemusíte existenci koncového adresáře předem ověřovat.
os.makedirs('exist_dir/exist_dir', exist_ok=True)
Pokud chybí argument exist_ok
Pokud máte starší verzi jazyka Python a nemáte v souboru os.madeirs argument exist_ok, můžete pomocí souboru os.path.exists zjistit, zda existuje koncový adresář, a pouze v případě, že neexistuje, vytvořit nový adresář.
if not os.path.exists('exist_dir/exist_dir'): os.makedirs('exist_dir/exist_dir')