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

Python: получение и изменение текущего рабочего каталога

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

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

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

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

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

 os . getcwd ()

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

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

 # 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/linuxize/Desktop os.getcwd() returns an object of type: 

Чтобы найти каталог, в котором находится скрипт, используйте 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/linuxize/Desktop 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) .

Если у вас есть вопросы или пожелания, не стесняйтесь оставлять комментарии.

питон

Связанные руководства

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *