При работе с файлами в каталогах в 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: <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/linuxize/Desktop
Current working directory: /tmp
Аргумент, передаваемый методу chdir()
должен быть каталогом, в противном случае NotADirectoryError
исключение 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)
.
Если у вас есть какие-либо вопросы или отзывы, не стесняйтесь оставлять комментарии.