logo

Pythona | metoda os.makedirs().

Wszystkie funkcje w module os podnoszą OSEBłąd w przypadku nieprawidłowych lub niedostępnych nazw plików i ścieżek lub innych argumentów, które mają poprawny typ, ale nie są akceptowane przez system operacyjny. W tym artykule dowiemy się, jak rekursywnie tworzyć katalogi przy użyciu modułu os, a także o metodzie os.makedirs().

Składnia funkcji os.makedirs() w Pythonie

Składnia: os.makedirs(ścieżka, tryb = 0o777, istnienie_ok = fałsz)



Parametr:

  1. ścieżka : Obiekt podobny do ścieżki reprezentujący ścieżkę systemu plików. Obiekt podobny do ścieżki to obiekt typu string lub bytes reprezentujący ścieżkę.
  2. tryb (opcjonalnie): Wartość całkowita reprezentująca tryb nowo utworzonego katalogu. Jeśli ten parametr zostanie pominięty, zostanie użyta wartość domyślna Oo777.
  3. istnieje_ok (opcjonalnie): dla tego parametru używana jest wartość domyślna False. Jeśli katalog docelowy już istnieje, zostanie zgłoszony OSError, jeśli jego wartość to False, w przeciwnym razie nie. Dla wartości True pozostawia katalog bez zmian.

Typ zwrotu: Ta metoda nie zwraca żadnej wartości.

Metoda os.makedirs() w Pythonie

os.makedirs() metoda w Pyton służy do rekurencyjnego tworzenia katalogu. Oznacza to, że podczas tworzenia katalogu liścia, jeśli brakuje jakiegoś katalogu średniopoziomowego, os.makedirs() metoda utworzy je wszystkie.



Rozważmy na przykład następującą ścieżkę:

/home/User/Documents/GeeksForGeeks/Authors/ihritik>

Załóżmy, że chcemy utworzyć katalog „ihritik”, ale katalogi „GeeksForGeeks” i „Authors” są niedostępne w ścieżce. Następnie os.makedirs() metoda utworzy cały niedostępny/brakujący katalog w określonej ścieżce. Najpierw zostaną utworzone „GeeksForGeeks” i „Autorzy”, a następnie zostanie utworzony katalog „ihritik”.

Przykłady funkcji Pythona os.makedirs().

Poniżej znajduje się kilka przykładów funkcji os.makedirs(), dzięki której możemy zobaczyć, jak rekurencyjnie tworzyć katalogi za pomocą moduł systemu operacyjnego :



Tworzenie katalogu za pomocąos.makedirs()>

W tym przykładzieos.makedirs()>metoda służy do tworzenia zagnieżdżonych katalogów. Pierwsza sekcja tworzy katalog o nazwie ihritik w ścieżce katalogu autorów. Druga sekcja z określonymi uprawnieniami tworzy katalog c zagnieżdżony w 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)>

>

>

Wyjście:

Directory 'ihritik' created Directory 'c' created>

Błędy podczas korzystania z metody os.makedirs().

W tym przykładzieos.makedirs()>metoda próbuje utworzyć katalog o nazwie ihritik w ścieżce GeeksForGeeks. Jeśli katalog już istnieje, metoda wywołuje plikOSError>. Po pomyślnym utworzeniu zostanie wydrukowany komunikat potwierdzający.

obiekt do jsona w Javie

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)>

>

>

Wyjście:

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'>

Obsługa błędów podczas korzystania z metody os.makedirs().

W tym przykładzieos.makedirs()>metoda jest używana zexist_ok>parametr ustawiony naTrue>stłumićOSError>jeśli katalog już istnieje. Jeśli katalog nie istnieje, zostanie utworzony. Jednak inneOSError>wyjątki, takie jak nieprawidłowa nazwa ścieżki, nadal mogą być zgłaszane i muszą być obsługiwane osobno.

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'>)>

>

>

Wyjście:

Directory 'ihritik' created successfully>