Vse funkcije v modulu os dvignejo OSError v primeru neveljavnih ali nedostopnih imen in poti datotek ali drugih argumentov, ki imajo pravilen tip, vendar jih operacijski sistem ne sprejema. V tem članku bomo videli, kako ustvariti imenike rekurzivno z uporabo modula os in tudi o metodi os.makedirs().
Sintaksa funkcije Python os.makedirs().
Sintaksa: os.makedirs(pot, način = 0o777, obstoj_ok = False)
Parameter:
- pot : predmet, podoben poti, ki predstavlja pot do datotečnega sistema. Objekt, podoben poti, je objekt niza ali bajtov, ki predstavlja pot.
- način (neobvezno) : Vrednost celega števila, ki predstavlja način na novo ustvarjenega imenika. Če je ta parameter izpuščen, se uporabi privzeta vrednost Oo777.
- obstoj_ok (neobvezno) : za ta parameter je uporabljena privzeta vrednost False. Če ciljni imenik že obstaja, se sproži OSError, če je njegova vrednost False, sicer ne. Za vrednost True imenik ostane nespremenjen.
Vrsta vračila: Ta metoda ne vrne nobene vrednosti.
Metoda os.makedirs() v Pythonu
os.makedirs() metoda v Python se uporablja za rekurzivno ustvarjanje imenika. To pomeni, da med ustvarjanjem listnega imenika manjka kateri koli imenik vmesne ravni, os.makedirs() metoda jih bo ustvarila vse.
Na primer, razmislite o naslednji poti:
/home/User/Documents/GeeksForGeeks/Authors/ihritik>
Recimo, da želimo ustvariti imenik »ihritik«, vendar imenik »GeeksForGeeks« in »Avtorji« nista na voljo na poti. Potem os.makedirs() metoda bo ustvarila vse nerazpoložljive/manjkajoče imenike na navedeni poti. Najprej bosta ustvarjena »GeeksForGeeks« in »Avtorji«, nato bo ustvarjen imenik »ihritik«.
Primeri funkcij Python os.makedirs().
Spodaj je nekaj primerov funkcije os.makedirs(), s katerimi lahko vidimo, kako ustvariti imenike rekurzivno z uporabo os modul :
Ustvarjanje imenika z uporaboos.makedirs()>
V tem primeru jeos.makedirs()>metoda se uporablja za ustvarjanje ugnezdenih imenikov. Prvi razdelek ustvari imenik z imenom ihritik znotraj poti imenika Avtorji. Drugi razdelek z določenimi dovoljenji ustvari imenik c, ki je ugnezden znotraj 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)> |
>
>
Izhod:
Directory 'ihritik' created Directory 'c' created>
Napake pri uporabi metode os.makedirs().
V tem primeru jeos.makedirs()>metoda poskuša ustvariti imenik z imenom ihritik znotraj poti GeeksForGeeks. Če imenik že obstaja, metoda sproži anOSError>. Po uspešni izdelavi se natisne potrditveno sporočilo.
dogovor o imenih 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)> |
>
>
Izhod:
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'>
Obravnava napak pri uporabi metode os.makedirs().
V tem primeru jeos.makedirs()>metoda se uporablja zexist_ok>parameter nastavljen naTrue>zatretiOSError>če imenik že obstaja. Če imenik ne obstaja, bo ustvarjen. Vendar pa drugoOSError>izjeme, kot je neveljavno ime poti, je še vedno mogoče dvigniti in jih je treba obravnavati ločeno.
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'>)> |
>
>
Izhod:
Directory 'ihritik' created successfully>