Hoe u de huidige werkmap in Python kunt krijgen

How Get Current Working Directory Python



De bestands- of mapnaam kan worden gebruikt met het volledige pad of door alleen de bestands- of mapnaam te vermelden om deze in het script te gebruiken. Het volledige pad van een bestand of map uit de hoofdmap wordt gespecificeerd door een absoluut pad. Wanneer de bestandsnaam wordt gebruikt zonder de padnaam in het script, wordt aangenomen dat de huidige werkmap de padnaam van het bestand is en het relatieve pad wordt genoemd. In Python wordt de huidige werkmap ingesteld op de maplocatie van waaruit het python-script wordt uitgevoerd. Er zijn veel modules in python om de huidige werkmap te krijgen. De manieren om de huidige werkdirectory op te halen met behulp van verschillende modules in Python zijn in deze tutorial getoond.

Voorbeeld-1: Pathlib-module gebruiken om de huidige werkmap te krijgen

De padklasse van de pathlib-module wordt gebruikt om de huidige werkdirectory van het uitvoerende script te lezen. Maak een python-script met de volgende code om de huidige werkmap te lezen en af ​​te drukken met behulp van de pathlib-module. De cwd() methode van de klasse Path wordt gebruikt om de huidige werkdirectory af te drukken van waaruit het script wordt uitgevoerd.







# Importeer het pad uit de pathlib-module

vanpathlibimporterenPad

# Haal het pad van de huidige werkmap op

huidige_werkmap=Pad.cwd()

# Print de locatie van de huidige werkmap

afdrukken('De locatie van de huidige werkdirectory is:')

afdrukken(huidige_werkmap)

Uitgang:

De volgende uitvoer zal verschijnen na het uitvoeren van het bovenstaande script. Hier is het pad van de huidige werkdirectory zonder de scriptnaam weergegeven in de uitvoer.





Voorbeeld-2: Normpath() en abspath() gebruiken om de huidige werkdirectory te krijgen

Het gebruik van de os-module is een andere manier om de huidige werkdirectory op te halen. Er bestaan ​​verschillende methoden in de padklasse van de os-module om de huidige werkdirectory op te halen. Het normpad() en abspath() methoden zijn de twee. Deze methoden retourneren de huidige werkdirectory als een tekenreeks. Maak een python-bestand met het volgende script om het doel van deze functies te controleren.





# Importeer os-module

importeren jij

# Druk de huidige werkmap af met de functie normpath()

afdrukken('De huidige werkdirectory (met behulp van normpath()) is:')

afdrukken(jij.pad.dirname(jij.pad.normpad(__het dossier__)))

# Druk de huidige werkmap af met de functie abspath()

afdrukken('NDe huidige werkdirectory (met abspath()) is:')

afdrukken(jij.pad.abspathisch('.'))

Uitgang:

De volgende uitvoer zal verschijnen na het uitvoeren van het bovenstaande script. Hier is het pad van de huidige werkdirectory zonder de scriptnaam weergegeven in de uitvoer.



Voorbeeld-3: Realpath() gebruiken om de huidige werkdirectory te krijgen

De echt pad() is een andere methode om de huidige werkdirectory op te halen. Maak een python-bestand met het volgende script om de huidige werkmap met de scriptnaam af te drukken met behulp van de realpath() methode . In het script duurt het de __het dossier__ als de argumentwaarde die de padnaam van het bestand bevat waarin de os-module is geïmporteerd.

# Importeer os-module

importeren jij

# Lees de huidige werkmap met de functie realpath()

real_path= jij.pad.echt pad(__het dossier__)

# Druk de huidige werkmap af met de scriptnaam

afdrukken('NDe huidige werkdirectory met de scriptnaam is:')

afdrukken(real_path)

Uitgang:

De volgende uitvoer zal verschijnen na het uitvoeren van het bovenstaande script. Hier is het pad van de huidige werkdirectory met de scriptnaam weergegeven in de uitvoer.

Voorbeeld-4: getcwd() gebruiken om de huidige werkmap op te halen

De ... gebruiken getcwd() functie van de os-module is de meest eenvoudige manier om de huidige werkdirectory van het uitvoerende script op te halen. Het bevat geen enkel argument en retourneert de CWD als een string. Maak een python-bestand met het volgende script om het gebruik van de . te controleren getcwd() functie . De huidige werkdirectory wordt afgedrukt aan het begin van het script. Vervolgens wordt het huidige mappad gewijzigd met behulp van de chdir() functie . De getcwd() commando wordt opnieuw aangeroepen na het wijzigen van de directory.

# Importeer os-module

importeren jij

# Druk de huidige werkmap af met de functie getcwd()

afdrukken('De huidige werkdirectory is:N', jij.getcwd())

# Wijzig de huidige werkdirectory

jij.chdir('/ enz. / mail')

# Print de huidige werkmap na wijziging

afdrukken('NDe huidige werkdirectory na wijziging is:N', jij.getcwd())

Uitgang:

De volgende uitvoer zal verschijnen na het uitvoeren van het bovenstaande script. Hier is het huidige werkmappad zonder de scriptnaam afgedrukt voordat de map werd gewijzigd. Vervolgens is het gewijzigde directorypad afgedrukt.

Voorbeeld-5: getcwd() gebruiken met try-behalve om de huidige werkmap te krijgen

Maak een python-bestand met het volgende script om de huidige werkmap te wijzigen op basis van de invoerwaarde en om verschillende soorten fouten af ​​te handelen. Drie soorten fouten kunnen worden afgehandeld door het script uit te voeren. De FileNotFoundError-fout wordt gegenereerd als het pad van de invoer niet bestaat. De NotADirectoryError-fout wordt gegenereerd als het pad van de invoer geen map is. De PermissionError fout wordt gegenereerd als het pad van de invoer niet toegankelijk is.

# Importeer de os-module

importeren jij

# Voer het pad van de map in

cwd= invoer('Voer het pad van de huidige werkmap in:N')


proberen:

# Wijzig de huidige werkdirectory

jij.chdir(cwd)

# Druk de huidige werkmap af met de functie getcwd()

afdrukken('De huidige werkdirectory is:N', jij.getcwd())

# Raise fout als de map niet bestaat

behalveFileNotFoundError:

afdrukken('Directory bestaat niet.')

# Raise fout als het invoerpad geen map is

behalveNotADirectoryError:

afdrukken('%s is geen map'%(cwd))

# Raise fout als de map niet toegankelijk is

behalvePermissionFout:

afdrukken('Toestemming geweigerd om de directory te wijzigen.')

Uitgang:

De volgende uitvoer verschijnt na het uitvoeren van het bovenstaande script als het pad bestaat. Hier bestaat het genomen invoerpad en is de gewijzigde werkdirectory in de uitvoer afgedrukt.


De volgende uitvoer verschijnt na het uitvoeren van het bovenstaande script als het pad niet bestaat.


De volgende uitvoer verschijnt na het uitvoeren van het bovenstaande script als het gevolgde pad niet toegankelijk is.

Conclusie:

Het gebruik van pathlib- en os-modules om de huidige werkdirectory te lezen wordt in deze tutorial getoond aan de hand van verschillende voorbeelden. De manier om de huidige werkdirectory op te halen na het wijzigen van de huidige werkdirectory op basis van gebruikersinvoer is ook getoond in deze tutorial.