Усі функції в модулі OS піднімаються OSError у разі недійсних або недоступних імен файлів і шляхів або інших аргументів, які мають правильний тип, але не приймаються операційною системою. У цій статті ми побачимо, як створювати каталоги рекурсивно за допомогою модуля os, а також про метод os.makedirs().
Синтаксис функції Python os.makedirs().
Синтаксис: os.makedirs(шлях, режим = 0o777, exist_ok = False)
Параметр:
- шлях : Об’єкт, схожий на шлях, що представляє шлях файлової системи. Об’єкт, подібний до шляху, — це рядковий або байтовий об’єкт, що представляє шлях.
- режим (необов’язково): ціле число, що представляє режим новоствореного каталогу. Якщо цей параметр опущено, використовується значення за замовчуванням Oo777.
- існує_добре (необов’язково): для цього параметра використовується значення за умовчанням False. Якщо цільовий каталог уже існує, виникає OSError, якщо його значення False, інакше ні. Для значення True каталог залишається незмінним.
Тип повернення: Цей метод не повертає жодного значення.
Метод os.makedirs() у Python
os.makedirs() метод в Python використовується для рекурсивного створення каталогу. Це означає, що під час створення кінцевого каталогу, якщо відсутній будь-який каталог проміжного рівня, os.makedirs() метод створить їх усіх.
Наприклад, розглянемо такий шлях:
/home/User/Documents/GeeksForGeeks/Authors/ihritik>
Припустімо, ми хочемо створити каталог «ihritik», але каталог «GeeksForGeeks» і «Authors» недоступні в шляху. Потім os.makedirs() метод створить усі недоступні/відсутні каталоги у вказаному шляху. Спочатку буде створено «GeeksForGeeks» і «Автори», а потім буде створено каталог «ihritik».
Приклади функцій Python os.makedirs().
Нижче наведено кілька прикладів функції os.makedirs(), за допомогою якої ми можемо побачити, як рекурсивно створювати каталоги за допомогою модуль os :
Створення каталогу за допомогоюos.makedirs()>
У цьому прикладіos.makedirs()>метод використовується для створення вкладених каталогів. У першому розділі створюється каталог з іменем ihritik у шляху до каталогу Authors. Другий розділ із зазначеними дозволами створює каталог c, вкладений у techcodeview.com/a/b.
Python3
import> os> # Leaf directory> directory>=> 'ihritik'> # Parent Directories> parent_dir>=> '/home/User/Documents/GeeksForGeeks/Authors'> # Path> path>=> os.path.join(parent_dir, directory)> # Create the directory 'ihritik'> os.makedirs(path)> print>(>'Directory '%s' created'> %> directory)> # Leaf directory> directory>=> 'c'> # Parent Directories> parent_dir>=> '/home/User/Documents/techcodeview.com/a/b'> # mode> mode>=> 0o666> path>=> os.path.join(parent_dir, directory)> os.makedirs(path, mode)> print>(>'Directory '%s' created'> %> directory)> |
>
>
Вихід:
Directory 'ihritik' created Directory 'c' created>
Помилки під час використання методу os.makedirs().
У цьому прикладіos.makedirs()>метод намагається створити каталог з назвою ihritik у шляху GeeksForGeeks. Якщо каталог уже існує, метод викликає anOSError>. Після успішного створення буде надруковано повідомлення про підтвердження.
об'єкт для json у java
Python3
import> os> # Directory> directory>=> 'ihritik'> # Parent Directory path> parent_dir>=> '/home/User/Documents/GeeksForGeeks'> # Path> path>=> os.path.join(parent_dir, directory)> # Create the directory 'ihritik'> os.makedirs(path)> print>(>'Directory '%s' created'> %> directory)> |
>
>
Вихід:
Traceback (most recent call last): File 'makedirs.py', line 21, in os.makedirs(path) File '/usr/lib/python3.6/os.py', line 220, in makedirs mkdir(name, mode) FileExistsError: [Errno 17] File exists: '/home/User/Documents/GeeksForGeeks/ihritik'>
Обробка помилок під час використання методу os.makedirs().
У цьому прикладіos.makedirs()>метод використовується зexist_ok>параметр встановлений наTrue>придушитиOSError>якщо каталог уже існує. Якщо каталог не існує, він буде створений. Проте іншеOSError>винятки, такі як недійсне ім'я шляху, все ще можуть бути викликані, і їх потрібно обробляти окремо.
Python3
import> os> # Directory> directory>=> 'ihritik'> # Parent Directory path> parent_dir>=> '/home/ihritik/Desktop/GeeksForGeeks'> # Path> path>=> os.path.join(parent_dir, directory)> # Create the directory 'ihritik'> try>:> >os.makedirs(path, exist_ok>=>True>)> >print>(>'Directory '%s' created successfully'> %> directory)> except> OSError as error:> >print>(>'Directory '%s' can not be created'>)> |
>
>
Вихід:
Directory 'ihritik' created successfully>