Hur man får nuvarande arbetskatalog i Python

How Get Current Working Directory Python



Fil- eller mappnamnet kan användas med hela sökvägen eller bara nämna filen eller mappnamnet bara för att använda det i skriptet. Den fullständiga sökvägen för en fil eller mapp från rotkatalogen anges av absolut sökväg. När filnamnet används utan sökvägsnamnet i skriptet antas den aktuella arbetskatalogen som filens söknamn och kallas den relativa sökvägen. I Python är Current Working Directory inställd på katalogplatsen från vilken python -skriptet körs. Många moduler finns i python för att få den aktuella arbetskatalogen. Sätten att hämta den aktuella arbetskatalogen med hjälp av olika moduler i Python har visats i den här självstudien.

Exempel-1: Använda pathlib-modul för att hämta Current Working Directory

Banans klass av pathlib -modul används för att läsa den aktuella arbetskatalogen för körskriptet. Skapa ett python -skript med följande kod för att läsa och skriva ut den aktuella arbetskatalogen med pathlib -modulen. De cwd () -metod i Path -klassen används för att skriva ut den aktuella arbetskatalogen från vilken skriptet körs.







# Importera sökvägen från pathlib -modulen

frånsökvägimporteraVäg

# Hämta sökvägen för den aktuella arbetskatalogen

current_working_directory=Väg.cwd()

# Skriv ut platsen för den aktuella arbetskatalogen

skriva ut('Platsen för den aktuella arbetskatalogen är:')

skriva ut(current_working_directory)

Produktion:

Följande utdata visas efter att ovanstående skript har körts. Här har sökvägen för den aktuella arbetskatalogen utan skriptnamnet visats i utdata.





Exempel-2: Använda normpath () och abspath () för att få den aktuella arbetskatalogen

Att använda os -modulen är ett annat sätt att hämta den aktuella arbetskatalogen. Olika metoder finns i OS -modulens sökklass för att hämta den aktuella arbetskatalogen. Normpath () och abspath () -metoder är de två. Dessa metoder returnerar den aktuella arbetskatalogen som en sträng. Skapa en pythonfil med följande skript för att kontrollera syftet med dessa funktioner.





# Importera os -modul

importera du

# Skriv ut den aktuella arbetskatalogen med funktionen normpath ()

skriva ut('Den aktuella arbetskatalogen (med normpath ()) är:')

skriva ut(du.väg.dirname(du.väg.normväg(__fil__)))

# Skriv ut den aktuella arbetskatalogen med funktionen abspath ()

skriva ut(' nDen nuvarande arbetskatalogen (med abspath ()) är: ')

skriva ut(du.väg.abspath('.'))

Produktion:

Följande utdata visas efter att ovanstående skript har körts. Här har sökvägen för den aktuella arbetskatalogen utan skriptnamnet visats i utdata.



Exempel-3: Använd realpath () för att hämta den aktuella arbetskatalogen

De realpath () är en annan metod för att hämta den aktuella arbetskatalogen. Skapa en pythonfil med följande skript för att skriva ut den aktuella arbetskatalogen med skriptnamnet med hjälp av realpath () metod . I manuset tar det __fil__ som argumentvärdet som innehåller filens söknamn i vilket OS -modulen importeras.

# Importera os -modul

importera du

# Läs den aktuella arbetskatalogen med funktionen realpath ()

verklig_väg= du.väg.realpath(__fil__)

# Skriv ut den aktuella arbetskatalogen med skriptnamnet

skriva ut(' nDen aktuella arbetskatalogen med skriptnamnet är: ')

skriva ut(verklig_väg)

Produktion:

Följande utdata visas efter att ovanstående skript har körts. Här har sökvägen för den aktuella arbetskatalogen med skriptnamnet visats i utdata.

Exempel-4: Använda getcwd () för att hämta den aktuella arbetskatalogen

Använda getcwd () -funktion OS -modulen är det enklaste sättet att hämta den aktuella arbetskatalogen för det exekverande skriptet. Den innehåller inget argument och returnerar CWD som en sträng. Skapa en pythonfil med följande skript för att kontrollera användningen av getcwd () -funktion . Den aktuella arbetskatalogen skrivs ut i början av skriptet. Därefter ändras den aktuella katalogvägen med hjälp av chdir () -funktion . De kommando getcwd () ringer igen efter att katalogen har ändrats.

# Importera os -modul

importera du

# Skriv ut den aktuella arbetskatalogen med funktionen getcwd ()

skriva ut('Den nuvarande arbetskatalogen är: n', du.getcwd())

# Ändra den aktuella arbetskatalogen

du.chdir(' / etc / mail')

# Skriv ut den aktuella arbetskatalogen efter ändring

skriva ut(' nDen nuvarande arbetskatalogen efter ändring är: n', du.getcwd())

Produktion:

Följande utdata visas efter att ovanstående skript har körts. Här har den aktuella sökvägen för arbetskatalogen utan skriptnamnet skrivits ut innan katalogen ändrades. Därefter har den ändrade katalogsökvägen skrivits ut.

Exempel-5: Använda getcwd () med försök-förutom att hämta den aktuella arbetskatalogen

Skapa en pythonfil med följande skript för att ändra den aktuella arbetskatalogen baserat på inmatningsvärdet och hantera olika typer av fel. Tre typer av fel kan hanteras genom att köra skriptet. De FileNotFoundError -fel genereras om sökvägen från ingången inte existerar. De NotADirectoryError -fel genereras om sökvägen från ingången inte är en katalog. De PermissionError -fel genereras om sökvägen från ingången inte är tillgänglig.

# Importera OS -modulen

importera du

# Ange sökvägen till katalogen

cwd= inmatning('Ange sökvägen för den aktuella arbetskatalogen: n')


Prova:

# Ändra den aktuella arbetskatalogen

du.chdir(cwd)

# Skriv ut den aktuella arbetskatalogen med funktionen getcwd ()

skriva ut('Den nuvarande arbetskatalogen är: n', du.getcwd())

# Höj fel om katalogen inte finns

bortsett frånFileNotFoundError:

skriva ut('Katalog finns inte.')

# Höj fel om inmatningsvägen inte är en katalog

bortsett frånNotADirectoryError:

skriva ut('%s är inte en katalog'%(cwd))

# Höj fel om katalogen inte är tillgänglig

bortsett frånPermissionFel:

skriva ut('Tillstånd nekas att ändra katalogen.')

Produktion:

Följande utdata visas efter körning av ovanstående skript om sökvägen finns. Här finns den tagna inmatningsvägen och den ändrade arbetskatalogen har skrivits ut i utdata.


Följande utdata visas efter att ovanstående skript har körts om sökvägen inte finns.


Följande utdata visas efter att skriptet ovan har körts om sökvägen inte är tillgänglig.

Slutsats:

Användningen av pathlib- och os -moduler för att läsa den aktuella arbetskatalogen visas i denna handledning med hjälp av olika exempel. Sättet att hämta den aktuella arbetskatalogen efter att ha ändrat den nuvarande arbetskatalogen baserat på användarinmatning har också visats i denna handledning.