Alle funktioner i os-modulet hæves OSError i tilfælde af ugyldige eller utilgængelige filnavne og -stier eller andre argumenter, der har den korrekte type, men som ikke accepteres af operativsystemet. I denne artikel vil vi se, hvordan man opretter mapper rekursivt ved hjælp af os-modulet og også om os.makedirs()-metoden.
Python os.makedirs() Funktionssyntaks
Syntaks: os.makedirs(sti, tilstand = 0o777, exist_ok = Falsk)
Parameter:
- sti : Et stilignende objekt, der repræsenterer en filsystemsti. Et stilignende objekt er enten et streng- eller bytesobjekt, der repræsenterer en sti.
- mode (valgfrit) : En heltalværdi, der repræsenterer tilstanden for den nyoprettede mappe. Hvis denne parameter udelades, bruges standardværdien Oo777.
- eksistere_ok (valgfrit): En standardværdi False bruges til denne parameter. Hvis målbiblioteket allerede eksisterer, opstår der en OSError, hvis værdien er False ellers ikke. For værdi True efterlader mappen uændret.
Returtype: Denne metode returnerer ingen værdi.
os.makedirs() Metode i Python
os.makedirs() metode i Python bruges til at oprette en mappe rekursivt. Det betyder, at mens du laver bladmappe, hvis der mangler en mappe på mellemniveau, os.makedirs() metode vil skabe dem alle.
Overvej f.eks. følgende sti:
/home/User/Documents/GeeksForGeeks/Authors/ihritik>
Antag, at vi vil oprette mappen 'ihritik', men Directory 'GeeksForGeeks' og 'Authors' er ikke tilgængelige i stien. Derefter os.makedirs() metoden vil oprette alle utilgængelige/manglende mapper i den angivne sti. 'GeeksForGeeks' og 'Authors' oprettes først, derefter oprettes 'ihritik'-mappen.
Python os.makedirs() Funktionseksempler
Nedenfor er nogle eksempler på os.makedirs()-funktionen, hvormed vi kan se, hvordan man opretter mapper rekursivt ved hjælp af os modul :
Oprettelse af bibliotek ved hjælp afos.makedirs()>
I dette eksempel eros.makedirs()>metoden bruges til at oprette indlejrede mapper. Den første sektion opretter en mappe med navnet ihritik i forfatterens biblioteksti. Den anden sektion, med specificerede tilladelser, opretter en mappe c indlejret 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)> |
>
>
Produktion:
Directory 'ihritik' created Directory 'c' created>
Fejl under brug af os.makedirs() metoden
I dette eksempel eros.makedirs()>metoden forsøger at oprette en mappe ved navn ihritik inden for GeeksForGeeks-stien. Hvis biblioteket allerede eksisterer, rejser metoden enOSError>. Efter vellykket oprettelse udskrives en bekræftelsesmeddelelse.
hvordan man bestemmer skærmstørrelsen
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)> |
>
>
Produktion:
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 af fejl under brug af os.makedirs() metoden
I dette eksempel eros.makedirs()>metoden bruges medexist_ok>parameter sat tilTrue>at undertrykkeOSError>hvis mappen allerede eksisterer. Hvis mappen ikke eksisterer, oprettes den. Dog andetOSError>undtagelser, såsom et ugyldigt stinavn, kan stadig rejses og skal 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'>)> |
>
>
Produktion:
Directory 'ihritik' created successfully>