Python | метод os.makedirs().
Усі функції в модулі 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. Якщо каталог уже існує, метод викликає an OSError> . Після успішного створення буде надруковано повідомлення про підтвердження.
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