logo

Python | metoda os.makedirs().

Všechny funkce v os modulu se zvyšují OSError v případě neplatných nebo nepřístupných názvů souborů a cest nebo jiných argumentů, které mají správný typ, ale nejsou akceptovány operačním systémem. V tomto článku uvidíme, jak vytvořit adresáře rekurzivně pomocí modulu os a také o metodě os.makedirs().

Syntaxe funkce os.makedirs() Pythonu

Syntax: os.makedirs(cesta, režim = 0o777, exist_ok = False)



Parametr:

  1. cesta : Objekt podobný cestě představující cestu systému souborů. Objekt podobný cestě je buď řetězec nebo objekt typu bytes představující cestu.
  2. režimu (nepovinné) : Celočíselná hodnota představující režim nově vytvořeného adresáře. Pokud je tento parametr vynechán, použije se výchozí hodnota Oo777.
  3. exist_ok (volitelné) : Pro tento parametr je použita výchozí hodnota False. Pokud cílový adresář již existuje, vyvolá se OSError, pokud je jeho hodnota False, jinak ne. Pro hodnotu True ponechává adresář beze změny.

Typ vrácení: Tato metoda nevrací žádnou hodnotu.

Metoda os.makedirs() v Pythonu

os.medirs() metoda v Krajta se používá k vytvoření adresáře rekurzivně. To znamená, že při vytváření listového adresáře, pokud chybí jakýkoli adresář střední úrovně, os.medirs() metoda je všechny vytvoří.



Zvažte například následující cestu:

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

Předpokládejme, že chceme vytvořit adresář „ihritik“, ale adresář „GeeksForGeeks“ a „Autoři“ nejsou v cestě k dispozici. Pak os.medirs() metoda vytvoří všechny nedostupné/chybějící adresáře v zadané cestě. Nejprve budou vytvořeny „GeeksForGeeks“ a „Authors“ a poté bude vytvořen adresář „ihritik“.

Příklady funkcí os.makedirs() Pythonu

Níže je uvedeno několik příkladů funkce os.makedirs(), pomocí které můžeme vidět, jak vytvořit adresáře rekurzivně pomocí os modul :



Vytvoření adresáře pomocíos.makedirs()>

V tomto příkladu jeos.makedirs()>metoda se používá k vytváření vnořených adresářů. První sekce vytvoří adresář s názvem ihritik v cestě k adresáři Authors. Druhá sekce se zadanými oprávněními vytvoří adresář c vnořený do 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)>

>

>

Výstup:

Directory 'ihritik' created Directory 'c' created>

Chyby při použití metody os.makedirs().

V tomto příkladu jeos.makedirs()>metoda se pokouší vytvořit adresář s názvem ihritik v cestě GeeksForGeeks. Pokud adresář již existuje, metoda vyvolá anOSError>. Po úspěšném vytvoření se vytiskne potvrzovací zpráva.

připojení k databázi v jazyce 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)>

>

>

Výstup:

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

Ošetření chyb při použití metody os.makedirs().

V tomto příkladu jeos.makedirs()>metoda se používá sexist_ok>parametr nastaven naTrue>PotlačitOSError>pokud adresář již existuje. Pokud adresář neexistuje, bude vytvořen. Nicméně jinéOSError>výjimky, jako je neplatný název cesty, lze stále vyvolávat a je třeba je řešit samostatně.

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

>

>

Výstup:

Directory 'ihritik' created successfully>