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 -modulimportera 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 -modulimportera 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 -modulenimportera 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.