Python | metoda os.makedirs().

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:

  1. 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.
  2. modul (opțional) : O valoare întreagă reprezentând modul directorului nou creat.. Dacă acest parametru este omis, atunci este utilizată valoarea implicită Oo777.
  3. 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 folosind os.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ă un OSError> . După crearea cu succes, este tipărit un mesaj de confirmare.

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ă cu exist_ok> parametrul setat la True> a suprima OSError> dacă directorul există deja. Dacă directorul nu există, acesta va fi creat. Cu toate acestea, altele OSError> 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