Kako do trenutnega delovnega imenika v Pythonu

How Get Current Working Directory Python



Ime datoteke ali mape lahko uporabite s celotno potjo ali samo omenite ime datoteke ali mape samo za uporabo v skriptu. Celotna pot datoteke ali mape iz korenskega imenika je podana z absolutno potjo. Ko se ime datoteke uporablja brez imena poti v skriptu, se trenutni delovni imenik prevzame kot ime poti datoteke in se imenuje relativna pot. V Pythonu je trenutni delovni imenik nastavljen na lokacijo imenika, od koder se izvaja skript python. V modulu python obstaja veliko modulov za pridobitev trenutnega delovnega imenika. V tej vadnici so prikazani načini pridobivanja trenutnega delovnega imenika z uporabo različnih modulov v Pythonu.

Primer-1: Uporaba modula pathlib za pridobitev trenutnega delovnega imenika

Razred poti modul pathlib se uporablja za branje trenutnega delovnega imenika izvršilnega skripta. Ustvarite python skript z naslednjo kodo za branje in tiskanje trenutnega delovnega imenika z uporabo modula pathlib. The cwd () metoda razreda Path se uporablja za tiskanje trenutnega delovnega imenika, iz katerega se skript izvaja.







# Uvozi pot iz modula pathlib

odpathlibuvozPot

# Pridobite pot trenutnega delovnega imenika

trenutni_delovni imenik=Pot.cwd()

# Natisnite lokacijo trenutnega delovnega imenika

tiskanje('Lokacija trenutnega delovnega imenika je:')

tiskanje(trenutni_delovni imenik)

Izhod:

Po izvedbi zgornjega skripta se prikaže naslednji izhod. Tukaj je pot trenutnega delovnega imenika brez imena skripta prikazana v izhodu.





Primer 2: Uporaba normpath () in abspath () za pridobitev trenutnega delovnega imenika

Z modulom os je še en način za pridobivanje trenutnega delovnega imenika. V razredu poti modula os obstajajo različne metode za pridobivanje trenutnega delovnega imenika. Normpath () in metode abspath () sta onadva. Te metode vrnejo trenutni delovni imenik kot niz. Ustvarite datoteko python z naslednjim skriptom, da preverite namene teh funkcij.





# Uvozi OS modul

uvoz ti

# Natisnite trenutni delovni imenik s funkcijo normpath ()

tiskanje('Trenutni delovni imenik (z uporabo normpath ()) je:')

tiskanje(ti.pot.dirname(ti.pot.normpath(__mapa__)))

# Natisnite trenutni delovni imenik s funkcijo abspath ()

tiskanje(' nTrenutni delovni imenik (z uporabo abspath ()) je: ')

tiskanje(ti.pot.abspath('.'))

Izhod:

Po izvedbi zgornjega skripta se prikaže naslednji izhod. Tukaj je pot trenutnega delovnega imenika brez imena skripta prikazana v izhodu.



Primer 3: Uporaba realpath () za pridobitev trenutnega delovnega imenika

The realpath () je še ena metoda za pridobivanje trenutnega delovnega imenika. Ustvarite datoteko python z naslednjim skriptom, da natisnete trenutni delovni imenik z imenom skripta s pomočjo metoda realpath () . V scenariju je potrebno __mapa__ kot vrednost argumenta, ki vsebuje ime poti datoteke, v kateri je uvožen modul os.

# Uvozi OS modul

uvoz ti

# Preberite trenutni delovni imenik s funkcijo realpath ()

real_path= ti.pot.realpath(__mapa__)

# Natisnite trenutni delovni imenik z imenom skripta

tiskanje(' nTrenutni delovni imenik z imenom skripta je: ')

tiskanje(real_path)

Izhod:

Po izvedbi zgornjega skripta se prikaže naslednji izhod. Tukaj je pot trenutnega delovnega imenika z imenom skripta prikazana v izhodu.

Primer 4: Uporaba getcwd () za pridobitev trenutnega delovnega imenika

Uporabljati funkcija getcwd () modula os je najpreprostejši način za pridobivanje trenutnega delovnega imenika izvršilnega skripta. Ne vsebuje nobenega argumenta in vrne CWD kot niz. Ustvarite datoteko python z naslednjim skriptom, da preverite uporabo datoteke funkcija getcwd () . Trenutni delovni imenik je natisnjen na začetku skripta. Nato se trenutna pot imenika spremeni z uporabo funkcija chdir () . The getcwd () ukaz se po spremembi imenika ponovno pokliče.

# Uvozi OS modul

uvoz ti

# Natisnite trenutni delovni imenik s funkcijo getcwd ()

tiskanje('Trenutni delovni imenik je: n', ti.getcwd())

# Spremenite trenutni delovni imenik

ti.chdir(' / etc / mail')

# Natisnite trenutni delovni imenik po spremembi

tiskanje(' nTrenutni delovni imenik po spremembi je: n', ti.getcwd())

Izhod:

Po izvedbi zgornjega skripta se prikaže naslednji izhod. Tukaj je bila pred spreminjanjem imenika natisnjena trenutna pot delovnega imenika brez imena skripta. Nato je bila natisnjena spremenjena pot imenika.

Primer-5: Uporaba getcwd () s try-except za pridobitev trenutnega delovnega imenika

Ustvarite datoteko python z naslednjim skriptom, da spremenite trenutni delovni imenik na podlagi vhodne vrednosti in odpravite različne vrste napak. Z izvajanjem skripta je mogoče odpraviti tri vrste napak. The Napaka FileNotFoundError se ustvari, če pot, vzeta iz vnosa, ne obstaja. The Napaka NotADirectoryError se ustvari, če pot, vzeta iz vnosa, ni imenik. The Napaka PermissionError se ustvari, če pot, vzeta iz vnosa, ni dostopna.

# Uvozite modul os

uvoz ti

# Vnesite pot imenika

cwd= vnos('Vnesite pot trenutnega delovnega imenika: n')


poskusite:

# Spremenite trenutni delovni imenik

ti.chdir(cwd)

# Natisnite trenutni delovni imenik s funkcijo getcwd ()

tiskanje('Trenutni delovni imenik je: n', ti.getcwd())

# Napaka pri dvigu, če imenik ne obstaja

razenFileNotFoundError:

tiskanje('Imenik ne obstaja.')

# Napaka pri dvigu, če vnosna pot ni imenik

razenNotADirectoryError:

tiskanje('%s ni imenik'%(cwd))

# Napaka pri dvigu, če imenik ni dostopen

razenPermissionError:

tiskanje('Dovoljenje za spremembo imenika zavrnjeno.')

Izhod:

Če pot obstaja, se po izvedbi zgornjega skripta prikaže naslednji izhod. Tu obstaja sprejeta vhodna pot in spremenjeni delovni imenik je natisnjen v izhodu.


Naslednji izhod se prikaže po izvedbi zgornjega skripta, če pot ne obstaja.


Če izvedena pot ni dostopna, se po izvedbi zgornjega skripta prikaže naslednji izhod.

Zaključek:

Uporaba modulov pathlib in os za branje trenutnega delovnega imenika je prikazana v tej vadnici z različnimi primeri. V tej vadnici je prikazan tudi način pridobivanja trenutnega delovnega imenika po spremembi trenutnega delovnega imenika glede na vnos uporabnika.