Python | os.makedirs() methode

Alle functies in de os-module verhogen OSFout in het geval van ongeldige of ontoegankelijke bestandsnamen en paden, of andere argumenten die het juiste type hebben maar niet door het besturingssysteem worden geaccepteerd. In dit artikel zullen we zien hoe je recursief mappen kunt maken met behulp van de os-module en ook over de methode os.makedirs().

Python os.makedirs() Functiesyntaxis

Syntaxis: os.makedirs(pad, modus = 0o777, exist_ok = False)

Parameter:

  1. pad : Een padachtig object dat een bestandssysteempad vertegenwoordigt. Een padachtig object is een string- of bytesobject dat een pad vertegenwoordigt.
  2. modus (optioneel): een geheel getal dat de modus van de nieuw gemaakte map vertegenwoordigt. Als deze parameter wordt weggelaten, wordt de standaardwaarde Oo777 gebruikt.
  3. bestaan_ok (optioneel) : Voor deze parameter wordt een standaardwaarde False gebruikt. Als de doelmap al bestaat, wordt er een OSError gegenereerd als de waarde False is, anders niet. Voor de waarde True blijft de directory ongewijzigd.

Retourtype: Deze methode retourneert geen enkele waarde.

os.makedirs() Methode in Python

os.makedirs() methode in Python wordt gebruikt om recursief een map te maken. Dat betekent dat bij het maken van de leaf-directory als er een directory op gemiddeld niveau ontbreekt, os.makedirs() methode zal ze allemaal creëren.

Neem bijvoorbeeld het volgende pad:

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

Stel dat we de map ‘ihritik’ willen maken, maar de map ‘GeeksForGeeks’ en ‘Authors’ zijn niet beschikbaar in het pad. Dan os.makedirs() methode maakt alle niet-beschikbare/ontbrekende mappen in het opgegeven pad. ‘GeeksForGeeks’ en ‘Auteurs’ worden eerst aangemaakt en vervolgens wordt de map ‘ihritik’ aangemaakt.

Python os.makedirs() Functievoorbeelden

Hieronder staan ​​enkele voorbeelden van de functie os.makedirs() waarmee we kunnen zien hoe we recursief mappen kunnen maken met behulp van de os-module :

Directory maken met behulp van os.makedirs()>

In dit voorbeeld is de os.makedirs()> methode wordt gebruikt om geneste mappen te maken. In de eerste sectie wordt een map gemaakt met de naam ihritik binnen het mappad Auteurs. De tweede sectie, met gespecificeerde rechten, maakt een map c aan, genest in 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)>

Uitgang:

Directory 'ihritik' created Directory 'c' created 

Fouten tijdens het gebruik van de methode os.makedirs().

In dit voorbeeld is de os.makedirs()> methode probeert een map met de naam ihritik te maken binnen het GeeksForGeeks-pad. Als de directory al bestaat, genereert de methode een OSError> . Als het aanmaken is gelukt, wordt er een bevestigingsbericht afgedrukt.

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

Uitgang:

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' 

Fouten afhandelen tijdens het gebruik van de methode os.makedirs().

In dit voorbeeld is de os.makedirs()> methode wordt gebruikt met de exist_ok> parameter ingesteld op True> onderdrukken OSError> als de map al bestaat. Als de directory niet bestaat, wordt deze aangemaakt. Echter, andere OSError> uitzonderingen, zoals een ongeldige padnaam, kunnen nog steeds worden gegenereerd en moeten afzonderlijk worden afgehandeld.

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

Uitgang:

Directory 'ihritik' created successfully