Как да получите текуща работна директория в Python

How Get Current Working Directory Python



Името на файла или папката може да се използва с пълния път или просто да се спомене името на файла или папката само за да се използва в скрипта. Пълният път на файл или папка от главната директория се определя от абсолютния път. Когато името на файла се използва без името на пътя в скрипта, тогава текущата работна директория се приема като име на пътя на файла и се нарича относителна пътека. В Python текущата работна директория е зададена на местоположението на директорията, откъдето се изпълнява скриптът на python. Много модули съществуват в python, за да получат текущата работна директория. Начините за извличане на текущата работна директория чрез използване на различни модули в Python са показани в този урок.

Пример-1: Използване на pathlib модул за получаване на текуща работна директория

Класът път на модул pathlib се използва за четене на текущата работна директория на изпълняващия скрипт. Създайте скрипт на python със следния код, за да прочетете и отпечатате текущата работна директория, като използвате модула pathlib. The метод cwd () на класа Path се използва за отпечатване на текущата работна директория, от която се изпълнява скриптът.







# Импортирайте пътя от модула pathlib

отpathlibвносПът

# Извличане на пътя на текущата работна директория

текуща_работна_директория=Път.cwd()

# Отпечатайте местоположението на текущата работна директория

печат(„Местоположението на текущата работна директория е:“)

печат(текуща_работна_директория)

Изход:

Следният изход ще се появи след изпълнение на горния скрипт. Тук пътят на текущата работна директория без името на скрипта е показан в изхода.





Пример-2: Използване на normpath () и abspath () за получаване на текущата работна директория

Използването на модула os е друг начин за извличане на текущата работна директория. В класа на пътя на os модула съществуват различни методи за извличане на текущата работна директория. Нормпатът () и abspath () методи са двамата. Тези методи връщат текущата работна директория като низ. Създайте python файл със следния скрипт, за да проверите целите на тези функции.





# Импортиране на os модул

внос Вие

# Отпечатайте текущата работна директория, използвайки функцията normpath ()

печат('Текущата работна директория (използваща normpath ()) е:')

печат(Вие.път.dirname(Вие.път.нормпат(__файл__)))

# Отпечатайте текущата работна директория, използвайки функцията abspath ()

печат('нТекущата работна директория (използваща abspath ()) е: ')

печат(Вие.път.абстрахирайте се('.'))

Изход:

Следният изход ще се появи след изпълнение на горния скрипт. Тук пътят на текущата работна директория без името на скрипта е показан в изхода.



Пример-3: Използване на realpath () за получаване на текущата работна директория

The realpath () е друг метод за извличане на текущата работна директория. Създайте python файл със следния скрипт, за да отпечатате текущата работна директория с името на скрипта, като използвате метод realpath () . В скрипта е необходимо __файл__ като стойност на аргумента, съдържаща името на пътя на файла, в който е импортиран os модулът.

# Импортиране на os модул

внос Вие

# Прочетете текущата работна директория, като използвате функцията realpath ()

real_path= Вие.път.реален път(__файл__)

# Отпечатайте текущата работна директория с името на скрипта

печат('нТекущата работна директория с името на скрипта е: ')

печат(real_path)

Изход:

Следният изход ще се появи след изпълнение на горния скрипт. Тук пътят на текущата работна директория с името на скрипта е показан в изхода.

Пример-4: Използване на getcwd () за получаване на текущата работна директория

Използвайки функция getcwd () на os модула е най -простият начин за извличане на текущата работна директория на изпълняващия скрипт. Той не съдържа никакъв аргумент и връща CWD като низ. Създайте python файл със следния скрипт, за да проверите използването на функция getcwd () . Текущата работна директория се отпечатва в началото на скрипта. След това текущият път на директорията се променя с помощта на функция chdir () . The команда getcwd () се извиква отново след смяна на директорията.

# Импортиране на os модул

внос Вие

# Отпечатайте текущата работна директория, като използвате функцията getcwd ()

печат(„Текущата работна директория е:н', Вие.getcwd())

# Променете текущата работна директория

Вие.chdir(' / etc / mail')

# Отпечатайте текущата работна директория след промяна

печат('нТекущата работна директория след промяна е:н', Вие.getcwd())

Изход:

Следният изход ще се появи след изпълнение на горния скрипт. Тук текущият път на работната директория без името на скрипта е отпечатан преди промяна на директорията. След това промененият път на директорията е отпечатан.

Пример-5: Използване на getcwd () с try-except за получаване на текущата работна директория

Създайте python файл със следния скрипт, за да промените текущата работна директория въз основа на входната стойност и да обработите различни видове грешки. Три вида грешки могат да бъдат обработени чрез изпълнение на скрипта. The Грешка в FileNotFoundError ще се генерира, ако пътят, взет от входа, не съществува. The Грешка в NotADirectoryError ще бъде генериран, ако пътят, взет от входа, не е директория. The Грешка в PermissionError ще се генерира, ако пътят, поет от входа, не е достъпен.

# Импортирайте os модула

внос Вие

# Въведете пътя на директорията

cwd= вход('Въведете пътя на текущата работна директория:н')


опитвам:

# Променете текущата работна директория

Вие.chdir(cwd)

# Отпечатайте текущата работна директория, като използвате функцията getcwd ()

печат(„Текущата работна директория е:н', Вие.getcwd())

# Повишаване на грешка, ако директорията не съществува

с изключениеFileNotFoundError:

печат('Директория не съществува.')

# Повишаване на грешка, ако входният път не е директория

с изключениеNotADirectoryError:

печат('%s не е директория'%(cwd))

# Повишаване на грешка, ако директорията не е достъпна

с изключениеРазрешение Грешка:

печат(„Отказано е разрешение за промяна на директорията.“)

Изход:

Следният изход ще се появи след изпълнение на горния скрипт, ако пътят съществува. Тук приетият входен път съществува и променената работна директория е отпечатана в изхода.


Следният изход ще се появи след изпълнение на горния скрипт, ако пътят не съществува.


Следният изход ще се появи след изпълнение на горния скрипт, ако поетият път не е достъпен.

Заключение:

Използването на pathlib и os модули за четене на текущата работна директория е показано в този урок чрез използване на различни примери. Начинът за извличане на текущата работна директория след промяна на текущата работна директория въз основа на въвеждане от потребителя също е показан в този урок.