Ошибка при создании нового каталога с помощью 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
Начиная с Python 3.2, был добавлен аргумент exist_ok, и если exist_ok=True, то ошибки не произойдет, даже если конечный каталог уже существует. Если конечный каталог не существует, будет создан новый, а если он существует, то ничего не будет сделано. Это удобно, так как не нужно заранее проверять существование конечного каталога.
os.makedirs('exist_dir/exist_dir', exist_ok=True)
Если аргумент exist_ok отсутствует
Если у вас более старая версия Python и в os.madeirs отсутствует аргумент exist_ok, вы можете использовать os.path.exists для определения наличия или отсутствия конечного каталога, а затем создать новый каталог только в том случае, если конечного каталога нет.
if not os.path.exists('exist_dir/exist_dir'): os.makedirs('exist_dir/exist_dir')