Visas OS moduļa funkcijas tiek paaugstinātas OSERror ja ir nederīgi vai nepieejami failu nosaukumi un ceļi, vai citi argumenti, kuriem ir pareizais tips, bet kurus operētājsistēma nepieņem. Šajā rakstā mēs redzēsim, kā rekursīvi izveidot direktorijus, izmantojot OS moduli, kā arī par os.makedirs() metodi.
Python os.makedirs() Funkcijas sintakse
Sintakse: os.makedirs(ceļš, režīms = 0o777, pastāv_ok = False)
Parametrs:
- ceļš : ceļam līdzīgs objekts, kas attēlo failu sistēmas ceļu. Ceļam līdzīgs objekts ir virknes vai baitu objekts, kas attēlo ceļu.
- režīmā (neobligāti) : vesela skaitļa vērtība, kas attēlo jaunizveidotā direktorija režīmu. Ja šis parametrs tiek izlaists, tiek izmantota noklusējuma vērtība Oo777.
- pastāv_ok (neobligāti) : šim parametram tiek izmantota noklusējuma vērtība False. Ja mērķa direktorijs jau pastāv, tiek parādīts OSEror, ja tā vērtība ir False, pretējā gadījumā tā nav. Vērtībai True direktorijs netiek mainīts.
Atgriešanas veids: Šī metode neatgriež nekādu vērtību.
os.makedirs() Metode Python
os.makedirs() metode iekšā Python tiek izmantots, lai rekursīvi izveidotu direktoriju. Tas nozīmē, ka, veidojot lapu direktoriju, ja trūkst kāda vidēja līmeņa direktorija, os.makedirs() metode radīs tos visus.
Piemēram, apsveriet šādu ceļu:
/home/User/Documents/GeeksForGeeks/Authors/ihritik>
Pieņemsim, ka mēs vēlamies izveidot direktoriju “ihritik”, bet direktorija “GeeksForGeeks” un “Autori” ceļā nav pieejami. Tad os.makedirs() metode radīs visu nepieejamo/trūkstošo direktoriju norādītajā ceļā. Vispirms tiks izveidots “GeeksForGeeks” un “Autori”, pēc tam tiks izveidots direktorijs “ihritik”.
Python os.makedirs() Funkciju piemēri
Tālāk ir sniegti daži funkcijas os.makedirs() piemēri, ar kuru palīdzību mēs varam redzēt, kā rekursīvi izveidot direktorijus, izmantojot os modulis :
Direktorija izveide, izmantojotos.makedirs()>
Šajā piemērāos.makedirs()>metode tiek izmantota, lai izveidotu ligzdotus direktorijus. Pirmajā sadaļā Autoru direktorijas ceļā tiek izveidots direktorijs ar nosaukumu ihritik. Otrajā sadaļā ar noteiktām atļaujām tiek izveidots direktorijs c, kas ligzdots vietnē 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)> |
>
>
Izvade:
Directory 'ihritik' created Directory 'c' created>
Kļūdas, izmantojot os.makedirs() metodi
Šajā piemērāos.makedirs()>metode mēģina izveidot direktoriju ar nosaukumu ihritik GeeksForGeeks ceļā. Ja direktorijs jau pastāv, metode rada anOSError>. Pēc veiksmīgas izveides tiek izdrukāts apstiprinājuma ziņojums.
virkne līdz garai
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)> |
>
>
Izvade:
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'>
Kļūdu apstrāde, izmantojot os.makedirs() metodi
Šajā piemērāos.makedirs()>metode tiek izmantota arexist_ok>parametrs iestatīts uzTrue>apspiestOSError>ja direktorijs jau pastāv. Ja direktorija nepastāv, tas tiks izveidots. Tomēr citiOSError>izņēmumus, piemēram, nederīgu ceļa nosaukumu, joprojām var parādīt, un tie ir jāapstrādā atsevišķi.
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'>)> |
>
>
Izvade:
Directory 'ihritik' created successfully>