Hvordan få gjeldende arbeidskatalog i Python

Hvordan få gjeldende arbeidskatalog i Python

Fil- eller mappenavnet kan brukes med hele banen eller bare nevne filen eller mappenavnet bare for å bruke den i skriptet. Den fulle banen til en fil eller mappe fra rotkatalogen er spesifisert av Absolute Path. Når filnavnet brukes uten banenavnet i skriptet, antas den gjeldende arbeidskatalogen som filens banenavn og kalles den relative banen. I Python er den nåværende arbeidskatalogen satt til katalogstedet der Python -skriptet kjøres. Det finnes mange moduler i Python for å få den nåværende arbeidskatalogen. Måtene å hente den gjeldende arbeidskatalogen ved å bruke forskjellige moduler i Python har vist i denne opplæringen.

Eksempel-1: Bruke PathLib-modulen for å få gjeldende arbeidskatalog

Baneklassen til PATHLIB -modul brukes til å lese den gjeldende arbeidskatalogen til det utførende skriptet. Lag et Python -skript med følgende kode for å lese og skrive ut den gjeldende arbeidskatalogen ved hjelp av PathLib -modulen. De CWD () -metode av baneklassen brukes til å skrive ut den gjeldende arbeidskatalogen der manuset utfører.

# Importer banen fra Pathlib -modulen
Fra pathlib importsti
# Hent banen til gjeldende arbeidskatalog
current_working_directory = sti.CWD ()
# Skriv ut plasseringen av gjeldende arbeidskatalog
Print ("Plasseringen av den gjeldende arbeidskatalogen er:")
print (current_working_directory)

Produksjon:

Følgende utgang vises etter å ha utført skriptet ovenfor. Her har banen til den gjeldende arbeidskatalogen uten skriptnavnet vist i utgangen.

Eksempel-2: Bruke NormPath () og ABSPath () for å få den nåværende arbeidskatalogen

Å bruke OS -modulen er en annen måte å hente den gjeldende arbeidskatalogen. Ulike metoder eksisterer i baneklassen til OS -modulen for å hente den nåværende arbeidskatalogen. Normpath () og AbsPath () Metoder er de to av dem. Disse metodene returnerer den gjeldende arbeidskatalogen som en streng. Lag en Python -fil med følgende skript for å sjekke formålene med disse funksjonene.

# Importer OS -modul
Importer OS
# Skriv ut den gjeldende arbeidskatalogen ved hjelp av NormPath () -funksjonen
Print ("Den nåværende arbeidskatalogen (ved hjelp av NormPath ()) er:")
trykk (OS.sti.Dirname (OS.sti.normpath (__ file__))))
# Skriv ut den gjeldende arbeidskatalogen ved hjelp av ABSPath () -funksjonen
print ("\ n den gjeldende arbeidskatalogen (ved hjelp av abspath ()) er:")
trykk (OS.sti.abspath ('.'))

Produksjon:

Følgende utgang vises etter å ha utført skriptet ovenfor. Her har banen til den gjeldende arbeidskatalogen uten skriptnavnet vist i utgangen.

Eksempel-3: Bruke RealPath () for å få den gjeldende arbeidskatalogen

De RealPath () er en annen metode for å hente den gjeldende arbeidskatalogen. Lag en Python -fil med følgende skript for å skrive ut den gjeldende arbeidskatalogen med skriptnavnet ved å bruke RealPath () Metode. I manuset tar det __fil__ Som argumentverdi som inneholder filens banenavn der OS -modulen importeres.

# Importer OS -modul
Importer OS
# Les den gjeldende arbeidskatalogen ved hjelp av RealPath () -funksjonen
real_path = os.sti.realpath (__ file__)
# Skriv ut gjeldende arbeidskatalog med skriptnavnet
Print ("\ N den gjeldende arbeidskatalogen med skriptnavnet er:")
print (real_path)

Produksjon:

Følgende utgang vises etter å ha utført skriptet ovenfor. Her har banen til den gjeldende arbeidskatalogen med skriptnavnet vist i utgangen.

Eksempel-4: Bruke getCwd () for å få den gjeldende arbeidskatalogen

Bruker getCwd () funksjon av OS -modulen er den mest enkle måten å hente den gjeldende arbeidskatalogen til det utførende skriptet. Den inneholder ikke noe argument og returnerer CWD som en streng. Lag en Python -fil med følgende skript for å sjekke bruken av getCwd () funksjon. Den nåværende arbeidskatalogen skrives ut i begynnelsen av skriptet. Deretter endres den gjeldende katalogstien ved å bruke chdir () funksjon. De getCwd () -kommando kalles igjen etter å ha endret katalogen.

# Importer OS -modul
Importer OS
# Skriv ut gjeldende arbeidskatalog ved hjelp av getCwd () -funksjonen
Print ("Den gjeldende arbeidskatalogen er: \ n", OS.getCwd ())
# Endre den gjeldende arbeidskatalogen
OS.chdir ('/etc/mail')
# Skriv ut gjeldende arbeidskatalog etter endring
print ("\ n den gjeldende arbeidskatalogen etter endring er: \ n", OS.getCwd ())

Produksjon:

Følgende utgang vises etter å ha utført skriptet ovenfor. Her er den nåværende arbeidskatalogstien uten skriptnavnet skrevet ut før du endrer katalogen. Deretter er den endrede katalogstien skrevet ut.

Eksempel-5: Bruke getCwd () med prøve-bortsett fra å få den nåværende arbeidskatalogen

Lag en Python -fil med følgende skript for å endre den gjeldende arbeidskatalogen basert på inngangsverdien og håndtere forskjellige typer feil. Tre typer feil kan håndteres ved å utføre skriptet. De FilenotFoundError feil vil bli generert hvis banen hentet fra inngangen ikke eksisterer. De NotadirectoryError feil vil bli generert hvis banen hentet fra inngangen ikke er en katalog. De Tillatelsesfeil vil bli generert hvis banen hentet fra inngangen ikke er tilgjengelig.

# Importer OS -modulen
Importer OS
# Skriv inn banen til katalogen
CWD = input ("Angi banen for gjeldende arbeidskatalog: \ n")
prøve:
# Endre den gjeldende arbeidskatalogen
OS.chdir (CWD)
# Skriv ut gjeldende arbeidskatalog ved hjelp av getCwd () -funksjonen
Print ("Den gjeldende arbeidskatalogen er: \ n", OS.getCwd ())
# Hev feil hvis katalogen ikke eksisterer
Bortsett fra FilenotFoundError:
trykk ("Katalog eksisterer ikke.")
# Hev feil hvis inngangsbanen ikke er en katalog
Bortsett fra NotadirectoryError:
Print (" %S er ikke en katalog" %(CWD))
# Hev feil hvis katalogen ikke er tilgjengelig
Bortsett fra tillatelse:
trykk ("Tillatelse nektet å endre katalogen.")

Produksjon:

Følgende utgang vises etter å ha utført skriptet ovenfor hvis banen eksisterer. Her eksisterer den tatt inngangssti, og den endrede arbeidskatalogen har skrevet ut i utgangen.


Følgende utdata vises etter å ha utført skriptet ovenfor hvis banen ikke eksisterer.


Følgende utdata vises etter å ha utført skriptet ovenfor hvis tittestien ikke er tilgjengelig.

Konklusjon:

Bruken av Pathlib og OS -moduler for å lese den gjeldende arbeidskatalogen vises i denne opplæringen ved å bruke forskjellige eksempler. Måten å hente den gjeldende arbeidskatalogen etter å ha endret den gjeldende arbeidskatalogen basert på brukerinngang er også vist i denne opplæringen.