Грешка при създаване на нова директория с os.mkdir() в несъществуваща директория
os.mkdir()
Това е методът, използван за създаване на директория (папка) в Python. Ако се опитате да създадете нова директория в несъществуваща директория, ще се появи грешка.(FileNotFoundError
)
import os os.mkdir('not_exist_dir/new_dir') # FileNotFoundError
Създаване на директории рекурсивно с os.madeirs()
Ако използвате os.makedirs() вместо os.mkdir(), ще се създаде междинна директория, така че можете да създадете рекурсивно дълбока йерархична директория.
os.makedirs('not_exist_dir/new_dir')
В случая на този пример ще бъдат създадени всички наведнъж. Няма проблем, ако има няколко нови междинни директории.
- междинна директория:
not_exist_dir
- крайна директория:
new_dir
Ако обаче крайната директория вече съществува, ще се появи грешка.(FileExistsError
)
os.makedirs('exist_dir/exist_dir') # FileExistsError
Ако има аргумент exist_ok
От версия 3.2 на Python е добавен аргументът exist_ok и ако exist_ok=True, няма да възникне грешка, дори ако крайната директория вече съществува. Ако крайната директория не съществува, ще бъде създадена нова, а ако съществува, няма да бъде направено нищо. Това е удобно, тъй като не е необходимо предварително да проверявате съществуването на крайната директория.
os.makedirs('exist_dir/exist_dir', exist_ok=True)
Ако липсва аргументът exist_ok
Ако имате по-стара версия на Python и нямате аргумента exist_ok в os.madeirs, можете да използвате os.path.exists, за да определите дали има крайна директория, и след това да създадете нова, само ако няма крайна директория.
if not os.path.exists('exist_dir/exist_dir'): os.makedirs('exist_dir/exist_dir')