logo

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 vanos.makedirs()>

In dit voorbeeld is deos.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 deos.makedirs()>methode probeert een map met de naam ihritik te maken binnen het GeeksForGeeks-pad. Als de directory al bestaat, genereert de methode eenOSError>. Als het aanmaken is gelukt, wordt er een bevestigingsbericht afgedrukt.

directory in Linux-opdrachten

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 deos.makedirs()>methode wordt gebruikt met deexist_ok>parameter ingesteld opTrue>onderdrukkenOSError>als de map al bestaat. Als de directory niet bestaat, wordt deze aangemaakt. Echter, andereOSError>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>