Alla funktioner i os-modulen höjs OSError i fallet med ogiltiga eller otillgängliga filnamn och sökvägar, eller andra argument som har rätt typ men som inte accepteras av operativsystemet. I den här artikeln kommer vi att se hur man skapar kataloger rekursivt med hjälp av os-modulen och även om metoden os.makedirs().
Python os.makedirs() Funktionssyntax
Syntax: os.makedirs(sökväg, läge = 0o777, exist_ok = Falskt)
Parameter:
- väg : Ett sökvägsliknande objekt som representerar en filsystemsökväg. Ett banliknande objekt är antingen ett sträng- eller bytesobjekt som representerar en bana.
- läge (valfritt) : Ett heltalsvärde som representerar läget för den nyskapade katalogen. Om denna parameter utelämnas används standardvärdet Oo777.
- exist_ok (valfritt) : Ett standardvärde False används för denna parameter. Om målkatalogen redan finns uppstår ett OSError om dess värde är False annars inte. För värde True lämnar katalogen oförändrad.
Returtyp: Denna metod returnerar inget värde.
os.makedirs() Metod i Python
os.makedirs() metod i Pytonorm används för att skapa en katalog rekursivt. Det betyder att när du skapar en bladkatalog om någon katalog på mellannivå saknas, os.makedirs() metoden kommer att skapa dem alla.
Tänk till exempel på följande väg:
/home/User/Documents/GeeksForGeeks/Authors/ihritik>
Anta att vi vill skapa katalogen 'ihritik' men Directory 'GeeksForGeeks' och 'Authors' är inte tillgängliga i sökvägen. Sedan os.makedirs() metod kommer att skapa alla otillgängliga/saknade kataloger i den angivna sökvägen. 'GeeksForGeeks' och 'Authors' skapas först, sedan skapas 'ihritik'-katalogen.
Python os.makedirs() Funktionsexempel
Nedan finns några exempel på funktionen os.makedirs() som vi kan se hur man skapar kataloger rekursivt med hjälp av os modul :
Skapa katalog med hjälp avos.makedirs()>
I det här exemplet äros.makedirs()>metoden används för att skapa kapslade kataloger. Den första sektionen skapar en katalog med namnet ihritik inom sökvägen till författarens katalog. Det andra avsnittet, med specificerade behörigheter, skapar en katalog c kapslad 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>
Fel vid användning av os.makedirs()-metoden
I det här exemplet äros.makedirs()>metod försöker skapa en katalog med namnet ihritik inom GeeksForGeeks-sökvägen. Om katalogen redan finns, höjer metoden enOSError>. Efter lyckat skapande skrivs ett bekräftelsemeddelande ut.
kasta kast i java
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'>
Hantera fel när du använder os.makedirs()-metoden
I det här exemplet äros.makedirs()>metoden används medexist_ok>parameter satt tillTrue>att förtryckaOSError>om katalogen redan finns. Om katalogen inte finns skapas den. Däremot andraOSError>undantag, som ett ogiltigt sökvägsnamn, kan fortfarande tas upp och måste hanteras 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>