Как получить и изменить текущий рабочий каталог в Python

12 set 2022 2 min di lettura
Как получить и изменить текущий рабочий каталог в Python
Indice dei contenuti

Введение

При работе с файлами в каталогах в Python всегда полезно использовать абсолютные пути. Однако, если вы работаете с относительными путями, вам необходимо понимать концепцию текущего рабочего каталога и то, как найти или изменить текущий рабочий каталог. Абсолютный путь указывает путь к файлу или каталогу, начинающийся с корневого каталога, а относительный путь начинается с текущего рабочего каталога.

При запуске скрипта Python текущим рабочим каталогом задается каталог, из которого запускается скрипт.

Модуль os python предоставляет портативный способ взаимодействия с операционной системой. Модуль является частью стандартной библиотеки Python и включает в себя методы поиска и изменения текущего рабочего каталога.

Получить текущий рабочий каталог в Python

Метод getcwd() модуля os в Python возвращает строку, содержащую абсолютный путь к текущему рабочему каталогу. Возвращаемая строка не включает завершающий символ косой черты.

os.getcwd()

Чтобы использовать методы модуля операционной системы, вы должны импортировать модуль в начало файла.

Ниже приведен пример, показывающий, как распечатать текущий рабочий каталог:

# Import the os module
 import os

 # Get the current working directory
 cwd = os.getcwd()

 # Print the current working directory
 print("Current working directory: {0}".format(cwd))

 # Print the type of the returned object
 print("os.getcwd() returns an object of type: {0}".format(type(cwd)))

Вывод будет выглядеть следующим образом:

Current working directory: /home/noviello
 os.getcwd() returns an object of type: <class 'str'>

Если вы хотите найти каталог, в котором находится скрипт, используйте os.path.realpath(__file__). Он вернет строку, содержащую абсолютный путь к запущенному скрипту.

Изменить текущий рабочий каталог в Python

Чтобы изменить текущий рабочий каталог в Python, используйте метод chdir().

os.getcwd(path)

Метод принимает один аргумент — путь к каталогу, который вы хотите изменить. Аргумент path может быть абсолютным или относительным.

Вот пример:

# Import the os module
 import os

 # Print the current working directory
 print("Current working directory: {0}".format(os.getcwd()))

 # Change the current working directory
 os.chdir('/tmp')

 # Print the current working directory
 print("Current working directory: {0}".format(os.getcwd()))

Вывод будет выглядеть следующим образом:

Current working directory: /home/noviello
 Current working directory: /tmp

Аргумент, предоставляемый методом chdir(), должен быть каталогом, в противном случае возникает исключение NotADirectoryError. Если указанный каталог не существует, возникает FileNotFoundError. Если пользователь, под которым выполняется сценарий, не имеет необходимых разрешений, возникает PermissionError.

# Import the os module
 import os

 path = '/var/www'

 try:
 os.chdir(path)
 print("Current working directory: {0}".format(os.getcwd()))
 except FileNotFoundError:
 print("Directory: {0} does not exist".format(path))
 except NotADirectoryError:
 print("{0} is not a directory".format(path))
 except PermissionError:
 print("You do not have permissions to change to {0}".format(path))

Вывод

Чтобы найти текущий рабочий каталог в Python, используйте os.getcwd(), а чтобы изменить текущий рабочий каталог, используйте os.chdir(path).

Support us with a

Successivamente, completa il checkout per l'accesso completo a Noviello.it.
Bentornato! Accesso eseguito correttamente.
Ti sei abbonato con successo a Noviello.it.
Successo! Il tuo account è completamente attivato, ora hai accesso a tutti i contenuti.
Operazione riuscita. Le tue informazioni di fatturazione sono state aggiornate.
La tua fatturazione non è stata aggiornata.