Hvordan få gjeldende arbeidskatalog i Python

How Get Current Working Directory Python



Fil- eller mappenavnet kan brukes med hele banen eller bare nevne fil- eller mappenavnet bare for å bruke det i skriptet. Hele banen til en fil eller mappe fra rotkatalogen er spesifisert av absolutt bane. Når filnavnet brukes uten banenavnet i skriptet, antas gjeldende arbeidskatalog som filens banenavn og kalles den relative banen. I Python er Current Working Directory satt til katalogplasseringen der python -skriptet kjøres. Mange moduler eksisterer i python for å få den nåværende arbeidskatalogen. Måtene du kan hente den nåværende arbeidskatalogen ved å bruke forskjellige moduler i Python har vist i denne opplæringen.

Eksempel 1: Bruke pathlib-modul for å få gjeldende arbeidskatalog

Baneklassen til pathlib -modul brukes til å lese den nåværende arbeidskatalogen for kjøreskriptet. Opprett et python -script med følgende kode for å lese og skrive ut den nåværende arbeidskatalogen ved hjelp av pathlib -modulen. De cwd () -metoden av banen -klassen brukes til å skrive ut den nåværende arbeidskatalogen der skriptet kjøres.







# Importer banen fra pathlib -modulen

frapathlibimportSti

# Hent banen til gjeldende arbeidskatalog

current_working_directory=Sti.cwd()

# Skriv ut plasseringen av gjeldende arbeidskatalog

skrive ut('Plasseringen til den nåværende arbeidskatalogen er:')

skrive ut(current_working_directory)

Produksjon:

Følgende utdata vises etter at skriptet ovenfor er utført. Her har banen til den nåværende 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 nåværende arbeidskatalogen. Det finnes forskjellige metoder i baneklassen til OS -modulen for å hente den nåværende arbeidskatalogen. Normpath () og abspath () -metoder er de to. Disse metodene returnerer den nåværende arbeidskatalogen som en streng. Opprett en python -fil med følgende skript for å kontrollere formålene med disse funksjonene.





# Importer OS -modul

import du

# Skriv ut gjeldende arbeidskatalog med funksjonen normpath ()

skrive ut('Den nåværende arbeidskatalogen (ved bruk av normpath ()) er:')

skrive ut(du.sti.dirname(du.sti.normpath(__fil__)))

# Skriv ut den nåværende arbeidskatalogen ved hjelp av abspath () -funksjonen

skrive ut(' nDen nåværende arbeidskatalogen (ved bruk av abspath ()) er: ')

skrive ut(du.sti.abspath('.'))

Produksjon:

Følgende utdata vises etter at skriptet ovenfor er utført. Her har banen til den nåværende arbeidskatalogen uten skriptnavnet vist i utgangen.



Eksempel-3: Bruke realpath () for å få den nåværende arbeidskatalogen

De realpath () er en annen metode for å hente den nåværende arbeidskatalogen. Opprett en python -fil med følgende skript for å skrive ut den nåværende arbeidskatalogen med skriptnavnet ved å bruke realpath () -metoden . I manuset tar det __fil__ som argumentverdien som inneholder filens banenavn der OS -modulen importeres.

# Importer OS -modul

import du

# Les den nåværende arbeidskatalogen ved hjelp av funksjonen realpath ()

ekte_sti= du.sti.realpath(__fil__)

# Skriv ut den nåværende arbeidskatalogen med skriptnavnet

skrive ut(' nDen nåværende arbeidskatalogen med skriptnavnet er: ')

skrive ut(ekte_sti)

Produksjon:

Følgende utdata vises etter at skriptet ovenfor er utført. Her har banen til den nåværende arbeidskatalogen med skriptnavnet vist i utgangen.

Eksempel-4: Bruke getcwd () for å få den nåværende arbeidskatalogen

Bruker getcwd () -funksjon av os -modulen er den enkleste måten å hente den nåværende arbeidskatalogen for kjøreskriptet. Den inneholder ikke noe argument og returnerer CWD som en streng. Opprett en python -fil med følgende skript for å kontrollere bruken av getcwd () -funksjon . Den nåværende arbeidskatalogen skrives ut i begynnelsen av skriptet. Deretter endres den nåværende katalogbanen ved å bruke chdir () -funksjon . De kommandoen getcwd () ringer igjen etter endring av katalogen.

# Importer OS -modul

import du

# Skriv ut den nåværende arbeidskatalogen med funksjonen getcwd ()

skrive ut('Den nåværende arbeidskatalogen er: n', du.getcwd())

# Endre den nåværende arbeidskatalogen

du.chdir(' / etc / mail')

# Skriv ut den nåværende arbeidskatalogen etter endring

skrive ut(' nDen nåværende arbeidskatalogen etter endring er: n', du.getcwd())

Produksjon:

Følgende utdata vises etter at skriptet ovenfor er utført. Her har den nåværende arbeidskatalogbanen uten skriptnavnet blitt skrevet ut før katalogen ble endret. Deretter har den endrede katalogbanen blitt skrevet ut.

Eksempel-5: Bruke getcwd () med prøve-unntatt for å få den nåværende arbeidskatalogen

Opprett en python -fil med følgende skript for å endre den nåværende arbeidskatalogen basert på inngangsverdien og håndtere forskjellige typer feil. Tre typer feil kan håndteres ved å kjøre skriptet. De FileNotFoundError -feil vil bli generert hvis banen fra inngangen ikke eksisterer. De NotADirectoryError -feil vil bli generert hvis banen hentet fra inngangen ikke er en katalog. De PermissionError -feil vil bli generert hvis banen fra inngangen ikke er tilgjengelig.

# Importer OS -modulen

import du

# Skriv inn banen til katalogen

cwd= input('Skriv inn banen til gjeldende arbeidskatalog: n')


prøve:

# Endre den nåværende arbeidskatalogen

du.chdir(cwd)

# Skriv ut den nåværende arbeidskatalogen med funksjonen getcwd ()

skrive ut('Den nåværende arbeidskatalogen er: n', du.getcwd())

# Hev feil hvis katalogen ikke eksisterer

unntattFileNotFoundError:

skrive ut('Katalog eksisterer ikke.')

# Hev feil hvis inngangsbanen ikke er en katalog

unntattNotADirectoryError:

skrive ut('%s er ikke en katalog'%(cwd))

# Hev feil hvis katalogen ikke er tilgjengelig

unntattTillatelse Feil:

skrive ut('Tillatelse nektet å endre katalogen.')

Produksjon:

Følgende utdata vises etter at skriptet ovenfor er kjørt hvis banen eksisterer. Her eksisterer den inntatte inndatabanen, og den endrede arbeidskatalogen har skrevet ut i utgangen.


Følgende utdata vises etter at skriptet ovenfor er utført hvis banen ikke eksisterer.


Følgende utdata vil vises etter at skriptet ovenfor er kjørt hvis banen som er tatt ikke er tilgjengelig.

Konklusjon:

Bruken av pathlib og os -moduler for å lese den nåværende arbeidskatalogen er vist i denne opplæringen ved hjelp av forskjellige eksempler. Måten å hente den nåværende arbeidskatalogen etter å ha endret den nåværende arbeidskatalogen basert på brukerinngang, har også blitt vist i denne opplæringen.