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:
- sti : Et banelignende objekt som representerer en filsystembane. Et banelignende objekt er enten et streng- eller byteobjekt som representerer en bane.
- modus (valgfritt) : En heltallsverdi som representerer modusen til den nyopprettede katalogen.. Hvis denne parameteren utelates, brukes standardverdien Oo777.
- 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 av os.makedirs()>
I dette eksemplet er os.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 er os.makedirs()> metoden forsøker å lage en katalog kalt ihritik innenfor GeeksForGeeks-banen. Hvis katalogen allerede eksisterer, fremhever metoden en OSError> . Etter vellykket opprettelse skrives en bekreftelsesmelding ut.
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 er os.makedirs()> metoden brukes med exist_ok> parameter satt til True> å undertrykke OSError> hvis katalogen allerede eksisterer. Hvis katalogen ikke eksisterer, vil den bli opprettet. Imidlertid andre OSError> 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