Kaikki os-moduulin toiminnot korotetaan OSE-virhe virheellisten tai tavoittamattomien tiedostonimien ja polkujen tai muiden argumenttien tapauksessa, joilla on oikea tyyppi, mutta joita käyttöjärjestelmä ei hyväksy. Tässä artikkelissa näemme kuinka luodaan hakemistoja rekursiivisesti os-moduulin avulla ja myös os.makedirs() -menetelmästä.
Python os.makedirs() -funktion syntaksi
Syntaksi: os.makedirs(polku, tila = 0o777, olemassa_ok = false)
Parametri:
- polku : Polkumainen objekti, joka edustaa tiedostojärjestelmän polkua. Polun kaltainen objekti on joko merkkijono tai tavuinen objekti, joka edustaa polkua.
- tila (valinnainen) : Kokonaisluku, joka edustaa juuri luodun hakemiston tilaa. Jos tämä parametri jätetään pois, käytetään oletusarvoa Oo777.
- olemassa_ok (valinnainen) : tälle parametrille käytetään oletusarvoa False. Jos kohdehakemisto on jo olemassa, OSE-virhe nousee esiin, jos sen arvo on False, muuten ei. Arvo True jättää hakemiston ennalleen.
Palautustyyppi: Tämä menetelmä ei palauta mitään arvoa.
os.makedirs() -menetelmä Pythonissa
os.makedirs() menetelmä sisään Python käytetään hakemiston luomiseen rekursiivisesti. Tämä tarkoittaa, että jos jokin keskitason hakemisto puuttuu lehtihakemistoa luotaessa, os.makedirs() menetelmä luo ne kaikki.
Harkitse esimerkiksi seuraavaa polkua:
/home/User/Documents/GeeksForGeeks/Authors/ihritik>
Oletetaan, että haluamme luoda hakemiston 'ihritik', mutta hakemistot 'GeeksForGeeks' ja 'Authors' eivät ole käytettävissä polussa. Sitten os.makedirs() menetelmä luo kaikki ei-käytettävissä/puuttuvat hakemistot määritettyyn polkuun. 'GeeksForGeeks' ja 'Authors' luodaan ensin, sitten 'ihritik' -hakemisto.
Python os.makedirs() funktioesimerkkejä
Alla on esimerkkejä os.makedirs()-funktiosta, jonka avulla voimme nähdä kuinka luodaan hakemistoja rekursiivisesti käyttämällä os-moduuli :
Hakemiston luominen käyttämälläos.makedirs()>
Tässä esimerkissäos.makedirs()>menetelmää käytetään sisäkkäisten hakemistojen luomiseen. Ensimmäinen osa luo hakemiston nimeltä ihritik Tekijät-hakemistopolkuun. Toinen osa, jolla on määritetyt käyttöoikeudet, luo hakemiston c, joka on sisäkkäinen techcodeview.com/a/b:ssä.
Python 3
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)> |
>
>
Lähtö:
Directory 'ihritik' created Directory 'c' created>
Virheet käytettäessä os.makedirs()-metodia
Tässä esimerkissäos.makedirs()>menetelmä yrittää luoda hakemiston nimeltä ihritik GeeksForGeeks-polulle. Jos hakemisto on jo olemassa, menetelmä herättää anOSError>. Onnistuneen luomisen jälkeen tulostetaan vahvistusviesti.
palindromi javassa
Python 3
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)> |
>
>
Lähtö:
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'>
Virheiden käsittely os.makedirs()-menetelmää käytettäessä
Tässä esimerkissäos.makedirs()>menetelmää käytetäänexist_ok>parametri asetettu arvoonTrue>tukahduttaaOSError>jos hakemisto on jo olemassa. Jos hakemistoa ei ole olemassa, se luodaan. Kuitenkin muutOSError>poikkeuksia, kuten virheellinen polun nimi, voidaan silti esittää, ja ne on käsiteltävä erikseen.
Python 3
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'>)> |
>
>
Lähtö:
Directory 'ihritik' created successfully>