Python | os.makedirs () methode

|

Alle functies in de os-module verhogen OSError voor ongeldige of onbereikbare bestandsnamen en paden of andere argumenten die van het juiste type zijn maar niet worden geaccepteerd door het besturingssysteem.

os.makedirs () in Python wordt gebruikt om recursief een map te maken. Dit betekent dat bij het maken van de doelmap, als er een map met een tussenlaag ontbreekt, os.makedirs() zal ze allemaal maken.
Neem bijvoorbeeld het volgende pad:

 / home / Gebruiker / Documenten / GeeksForGeeks / Authors / ihritik 

Stel dat we de map "ihritik" willen maken, maar de " GeeksForGeeks "en" Credits "zijn niet beschikbaar tijdens het transport. Dan os.makedirs() zal de volledige ontoegankelijke/ontbrekende map aanmaken op het gespecificeerde pad. Eerst worden GeeksForGeeks en Authors gemaakt, daarna wordt de ihritik-directory gemaakt.

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

Parameter:
pad : Een pad-achtig object dat een bestandssysteempad vertegenwoordigt. Een padachtig object is een tekenreeks of een bytes-object dat een pad vertegenwoordigt.
modus (optioneel): Een geheel getal dat de modus van de nieuw aangemaakte directory voorstelt..Als deze parameter wordt weggelaten, wordt de standaardwaarde Oo777 gebruikt.
exist_ok (optioneel): Voor deze parameter wordt een standaardwaarde False gebruikt. Als de doelmap al bestaat, wordt een OSError gegenereerd als de waarde False is, anders niet.

Retourtype: Deze methode retourneert geen waarde.

Code #1: De os.makedirs gebruiken () methode om een directory aan te maken

# Python-programma om het besturingssysteem uit te leggen. makedirs () methode


# module import os

import os


# Leaf directory

directory = "ihritik"


# Bovenliggende mappen

parent_di r = "/ home / Gebruiker / Documenten / GeeksForGeeks / Auteurs"


# Pad

pad = os.path.join ( (parent_dir, directory)


# Maak directory
# & # 39; ihritik & # 39;
os.makedirs (pad)

print ( "Directory’% s’ aangemaakt " % directory)


# Mappen & # 39; GeeksForGeeks & # 39; en & # 39; Auteurs & # 39; wordt
# ook aangemaakt
# als het niet bestaat


# Leaf-map

directory = " c "


# Bovenliggende mappen

parent_dir = " / home / Gebruiker / Documenten / Python.Engineering / a / b "


# Mode

mode = 0o666

pad = os.path.join ( (parent_dir, directory)


# Maak directory
# & # 39; c & # 39;


os.makedirs (pad, modus)

print ( "Directory’% s’ gemaakt " % directory )


# & # 39; GeeksForGeeks & # 39 ;, & # 39; een & # 39; en & # 39; b & # 39;
# wordt ook gegenereerd als
# niet bestaat


# Als een van de tussenliggende niveaus
# geen catalogus
# os.makedirs () methode
# maak ze


De # os. makedirs () methode kan
# zijn gebruikt om een directorystructuur aan te maken

Exit :

 Directory ’ihritik’ gemaakt Directory’ c’ gemaakt 

Code #2: Fouten bij gebruik van os.makedirs () methode

< /table>

Afsluiten :

 Traceback (meest recente oproep laatste): Bestand "makedirs.py", regel 21, in os.makedirs (pad) Bestand "/usr/lib/python3.6/os.py", regel 220, in makedirs< /a> mkdir (naam, modus) FileExistsError: [Errno 17] Bestand bestaat: ’/ home / User / Documents / GeeksForGeeks / ihritik’ 

Code # 3: Foutafhandeling bij gebruik van de os.makedirs () methode

# Python-programma om met os uit te leggen.makedirs () code


# import van de os-module

import os


De # os.makedirs () methode roept
# OSE-fout als directory
# bestaat al om te maken


# Directory

directory = "ihritik" < /p>


# Pad naar bovenliggende map

parent_dir = "/ home / Gebruiker / Documenten / GeeksForGeeks"


# Pad

pad = os.path.join ( (parent_dir, directory)


# Maak directory
# & # 39; ihritik & # 39;
os.makedirs (pad)

print ( " Directory ’% s’ aangemaakt" % directory)

# Python-programma om het besturingssysteem uit te leggen.makedirs () methode


# import van de os-module

import os


De # os.makedirs () methode roept
# OSE-fout als directory
# al bestaat om te maken
# Maar het kan worden onderdrukt
# parameterwaarde instellen
# exist_ok as Waar


# Directory

directory = "ihritik"


# Pad naar bovenliggende map

parent_dir = "/ home / ihritik / Desktop / GeeksForGeeks"


# Pad

pad = os.path.join ( (ouder_dir, directory)


# Maak directory
# & # 39; ihritik & # 39 ;

probeer :

os.makedirs (pad, exist_ok = True )

print ( "Directory’% s’ succesvol aangemaakt " % directory)

behalve OSError als fout:

print ( " Directory ’% s’ kan niet worden aangemaakt " )


# Existence_of_s instellen als True
# er is al een fout opgetreden
# bestaande map kan worden onderdrukt
# maar een andere OSError kan worden verhoogd
# vanwege een andere fout zoals
# ongeldig pad

Afsluiten:

 Directory ’ihritik’ succesvol aangemaakt 

Link: https:/ / documenten. python.org/3/library/os.html