Метод Python os.madeirs() используется для рекурсивного создания каталога. Если вы создаете конечный каталог и какой-либо каталог промежуточного уровня отсутствует, метод os.makedirs() создаст его за вас.
Синтаксис
|
1 |
os.makedirs(path, mode, exist_ok = False) |
Параметры
- path: это путь, который необходимо создавать рекурсивно.
- mode: это режим каталогов, которые будут заданы.
- exist_ok: для этого параметра используется значение по умолчанию False. Если целевой каталог уже существует, возникает ошибка OSError, если ее значение равно False; иначе нет. Значение True оставляет каталог без изменений.
Возвращаемое значение
Метод makedirs() не возвращает никакого значения.
|
1 |
/Users/krunallathiya/Desktop/Code/R |
Чтобы создать рекурсивный каталог, например «data», используйте метод os.madeirs(), чтобы создать все недоступные/отсутствующие каталоги по указанному пути. Сначала будет создана «matrix», затем будет создан каталог «data».
Пример: как использовать метод os.madeirs()
|
1 2 3 4 5 6 7 |
import os leaf_dirs = "data" parent_dirs = "/Users/krunallathiya/Desktop/Code/R/matrix" path = os.path.join(parent_dirs, leaf_dirs) os.makedirs(path) print("Directory '%s' is created" % leaf_dirs) |
Выход
|
1 |
Directory 'data' is created |
Вы можете видеть, что метод os.madeirs() создает рекурсивные каталоги.
FileExistsError: файл существует в Python
FileExistsError: данная ошибка возникает при двукратном запуске кода os.madeirs(), поскольку после первого запуска создаются рекурсивные каталоги, а после второго запуска каталоги уже существуют. Вот почему выдает ошибку.
|
1 2 3 4 5 6 7 |
import os leaf_dirs = "data" parent_dirs = "/Users/krunallathiya/Desktop/Code/R/matrix" path = os.path.join(parent_dirs, leaf_dirs) os.makedirs(path) print("Directory '%s' is created" % leaf_dirs) |
Выход
|
1 |
FileExistsError: File exists: '/Users/krunallathiya/Desktop/Code/R/matrix/data' |
Чтобы исправить FileExistsError в Python, вы можете использовать блок «try-Exception», чтобы перехватить исключение, не нарушая работу программы.
|
1 2 3 4 5 6 7 8 9 10 11 |
import os leaf_dirs = "data" parent_dirs = "/Users/krunallathiya/Desktop/Code/R/matrix" path = os.path.join(parent_dirs, leaf_dirs) try: os.makedirs(path) print("Directory '%s' is created" % leaf_dirs) except OSError as error: print("Directory can't be created!") |
Выход
|
1 |
Directory can't be created! |
Мы напечатали соответствующий оператор, не выходя из программы, используя блок try-кроме.
