logo

Python | os.makedirs() metode

Alle funksjoner i os-modulen heves OSFeil i tilfelle ugyldige eller utilgjengelige filnavn og stier, eller andre argumenter som har riktig type, men som ikke aksepteres av operativsystemet. I denne artikkelen vil vi se hvordan du oppretter kataloger rekursivt ved å bruke os-modulen og også om os.makedirs()-metoden.

Python os.makedirs() Funksjonssyntaks

Syntaks: os.makedirs(bane, modus = 0o777, exist_ok = False)



Parameter:

  1. sti : Et banelignende objekt som representerer en filsystembane. Et banelignende objekt er enten et streng- eller byteobjekt som representerer en bane.
  2. modus (valgfritt) : En heltallsverdi som representerer modusen til den nyopprettede katalogen.. Hvis denne parameteren utelates, brukes standardverdien Oo777.
  3. finnes_ok (valgfritt) : En standardverdi False brukes for denne parameteren. Hvis målkatalogen allerede eksisterer, oppstår en OSError hvis verdien er False ellers ikke. For verdien True lar katalogen være uendret.

Returtype: Denne metoden returnerer ingen verdi.

os.makedirs() Metode i Python

os.makedirs() metode i Python brukes til å opprette en katalog rekursivt. Det betyr at mens du lager bladkatalog hvis en katalog på mellomnivå mangler, os.makedirs() metoden vil skape dem alle.



Tenk for eksempel på følgende bane:

/home/User/Documents/GeeksForGeeks/Authors/ihritik>

Anta at vi ønsker å lage katalogen 'ihritik', men Directory 'GeeksForGeeks' og 'Authors' er utilgjengelige i banen. Deretter os.makedirs() metoden vil opprette alle utilgjengelige/manglende kataloger i den angitte banen. 'GeeksForGeeks' og 'Authors' vil bli opprettet først, deretter vil 'ihritik'-katalogen bli opprettet.

Python os.makedirs() Funksjonseksempler

Nedenfor er noen eksempler på os.makedirs()-funksjonen der vi kan se hvordan du oppretter kataloger rekursivt ved å bruke os modul :



Opprette katalog ved hjelp avos.makedirs()>

I dette eksemplet eros.makedirs()>metoden brukes til å lage nestede kataloger. Den første delen oppretter en katalog som heter ihritik innenfor forfatterens katalogbane. Den andre delen, med spesifiserte tillatelser, oppretter en katalog c nestet i 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)>

>

>

Produksjon:

Directory 'ihritik' created Directory 'c' created>

Feil under bruk av os.makedirs()-metoden

I dette eksemplet eros.makedirs()>metoden forsøker å lage en katalog kalt ihritik innenfor GeeksForGeeks-banen. Hvis katalogen allerede eksisterer, fremhever metoden enOSError>. Etter vellykket opprettelse skrives en bekreftelsesmelding ut.

java cast int til streng

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)>

>

>

Produksjon:

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'>

Håndtering av feil ved bruk av os.makedirs()-metoden

I dette eksemplet eros.makedirs()>metoden brukes medexist_ok>parameter satt tilTrue>å undertrykkeOSError>hvis katalogen allerede eksisterer. Hvis katalogen ikke eksisterer, vil den bli opprettet. Imidlertid andreOSError>unntak, for eksempel et ugyldig banenavn, kan fortsatt oppstå og må håndteres 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'>)>

>

>

Produksjon:

Directory 'ihritik' created successfully>