Toate funcțiile din modulul os cresc OSError în cazul numelor și căilor de fișiere invalide sau inaccesibile sau alte argumente care au tipul corect, dar care nu sunt acceptate de sistemul de operare. În acest articol, vom vedea cum să creați directoare recursiv folosind modulul os și, de asemenea, despre metoda os.makedirs().
Sintaxa funcției Python os.makedirs().
Sintaxă: os.makedirs(cale, mod = 0o777, exist_ok = False)
Parametru:
- cale : Un obiect asemănător unei căi care reprezintă o cale de sistem de fișiere. Un obiect asemănător căii este fie un șir, fie un obiect de octeți care reprezintă o cale.
- modul (opțional) : O valoare întreagă reprezentând modul directorului nou creat.. Dacă acest parametru este omis, atunci este utilizată valoarea implicită Oo777.
- există_ok (opțional): O valoare implicită False este utilizată pentru acest parametru. Dacă directorul țintă există deja o OSError este generată dacă valoarea sa este False, altfel nu. Pentru valoarea True lasă directorul nealterat.
Tip returnare: Această metodă nu returnează nicio valoare.
os.makedirs() Metoda în Python
os.makedirs() metoda in Piton este folosit pentru a crea un director recursiv. Asta înseamnă că, în timp ce faci directorul frunze, dacă lipsește vreun director de nivel intermediar, os.makedirs() metoda le va crea pe toate.
De exemplu, luați în considerare următoarea cale:
/home/User/Documents/GeeksForGeeks/Authors/ihritik>
Să presupunem că vrem să creăm directorul „ihritik”, dar directorul „GeeksForGeeks” și „Autori” nu sunt disponibile în cale. Apoi os.makedirs() metoda va crea toate directoarele indisponibile/lipsă din calea specificată. „GeeksForGeeks” și „Autori” vor fi creați mai întâi, apoi directorul „ihritik” va fi creat.
Python os.makedirs() Exemple de funcții
Mai jos sunt câteva exemple de funcție os.makedirs() prin care putem vedea cum să creăm directoare recursiv folosind modulul os :
Crearea directorului folosindos.makedirs()>
În acest exemplu,os.makedirs()>metoda este utilizată pentru a crea directoare imbricate. Prima secțiune creează un director numit ihritik în calea directorului Autori. A doua secțiune, cu permisiunile specificate, creează un director c imbricat în 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)> |
>
>
Ieșire:
Directory 'ihritik' created Directory 'c' created>
Erori la utilizarea metodei os.makedirs().
În acest exemplu,os.makedirs()>metoda încearcă să creeze un director numit ihritik în calea GeeksForGeeks. Dacă directorul există deja, metoda generează unOSError>. După crearea cu succes, este tipărit un mesaj de confirmare.
Logica de ordinul 1
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)> |
>
>
Ieșire:
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'>
Gestionarea erorilor în timpul utilizării metodei os.makedirs().
În acest exemplu,os.makedirs()>metoda este folosită cuexist_ok>parametrul setat laTrue>a suprimaOSError>dacă directorul există deja. Dacă directorul nu există, acesta va fi creat. Cu toate acestea, alteleOSError>excepțiile, cum ar fi un nume de cale nevalid, pot fi în continuare ridicate și trebuie tratate separat.
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'>)> |
>
>
Ieșire:
Directory 'ihritik' created successfully>