Chyba pri vytváraní nového adresára pomocou os.mkdir() v neexistujúcom adresári
os.mkdir()
Táto metóda sa používa na vytvorenie adresára (priečinka) v jazyku Python. Ak sa pokúsite vytvoriť nový adresár v neexistujúcom adresári, dôjde k chybe.(FileNotFoundError
)
import os os.mkdir('not_exist_dir/new_dir') # FileNotFoundError
Vytvorenie adresárov rekurzívne pomocou os.madeirs()
Ak namiesto funkcie os.mkdir() použijete funkciu os.makedirs(), vytvorí sa medziadresár, takže môžete rekurzívne vytvoriť hlboký hierarchický adresár.
os.makedirs('not_exist_dir/new_dir')
V prípade tohto príkladu sa vytvoria všetky naraz. Je v poriadku, ak existuje viacero nových priebežných adresárov.
- priebežný adresár:
not_exist_dir
- záverečný adresár:
new_dir
Ak však koncový adresár už existuje, dôjde k chybe.(FileExistsError
)
os.makedirs('exist_dir/exist_dir') # FileExistsError
Ak existuje argument exist_ok
Od verzie Python 3.2 bol pridaný argument exist_ok, a ak exist_ok=True, nedôjde k chybe ani v prípade, že koncový adresár už existuje. Ak koncový adresár neexistuje, vytvorí sa nový, a ak existuje, neurobí sa nič. Je to výhodné, pretože nemusíte vopred kontrolovať existenciu koncového adresára.
os.makedirs('exist_dir/exist_dir', exist_ok=True)
Ak chýba argument exist_ok
Ak máte staršiu verziu Pythonu a nemáte v os.madeirs argument exist_ok, môžete použiť os.path.exists na zistenie, či existuje koncový adresár, a potom vytvoriť nový adresár, len ak neexistuje.
if not os.path.exists('exist_dir/exist_dir'): os.makedirs('exist_dir/exist_dir')