При работе с файлами в каталогах в Python всегда рекомендуется использовать абсолютные пути. Однако, если вы работаете с относительными путями, вам необходимо понимать концепцию текущего рабочего каталога и то, как найти или изменить текущий рабочий каталог. Абсолютный путь указывает расположение файла или каталога, начиная с корневого каталога, а относительный путь начинается с текущего рабочего каталога.
Когда вы запускаете сценарий Python, в качестве текущего рабочего каталога устанавливается каталог, из которого выполняется сценарий.
Модуль os python обеспечивает переносимый способ взаимодействия с операционной системой. Модуль является частью стандартной библиотеки Python и включает методы поиска и изменения текущего рабочего каталога.
Метод getcwd() модуля os в Python, возвращает строку, содержащую абсолютный путь к текущему рабочему каталогу. Возвращенная строка не включает завершающий символ косой черты.
os.getcwd()
Чтобы использовать методы модуля os, вы должны импортировать модуль в верхней части файла.
Ниже приведен пример, показывающий, как распечатать текущий рабочий каталог:
# Импорт модуля os import os # Получить текущий рабочий каталог cwd = os.getcwd() # Печать текущего рабочего каталога print("Текущий рабочий каталог: {0}".format(cwd)) # Выведите тип возвращаемого объекта print("os.getcwd() возвращает объект типа: {0}".format(type(cwd)))
Результат будет выглядеть примерно так:
Текущий рабочий каталог: /home/AndreyEx/Desktop os.getcwd() возвращает объект типа: <class 'str'>
Чтобы изменить текущий рабочий каталог в Python, используйте метод chdir().
os.getcwd(path)
Метод принимает один аргумент – путь к каталогу, в который вы хотите перейти. Аргумент path может быть абсолютным или относительным.
Вот пример:
# Импорт модуля os import os # Печать текущего рабочего каталога print("Текущий рабочий каталог: {0}".format(os.getcwd())) # Изменение текущего рабочего каталога os.chdir('/tmp') # Печать текущего рабочего каталога print("Текущий рабочий каталог: {0}".format(os.getcwd()))
Результат будет выглядеть примерно так:
Текущий рабочий каталог: /home/Andreyex/Desktop Текущий рабочий каталог: /tmp
Аргумент, предоставленный методу chdir(), должен быть каталогом, в противном случае возникает исключение NotADirectoryError. Если указанный каталог не существует, возникает исключение FileNotFoundError. Если у пользователя, под которым выполняется сценарий, нет необходимых разрешений, возникает исключение PermissionError.
# Импорт модуля os import os path = '/var/www' try: os.chdir(path) print("Текущий рабочий каталог: {0}".format(os.getcwd())) except FileNotFoundError: print("Каталог: {0} не существует".format(path)) except NotADirectoryError: print("{0} не каталог".format(path)) except PermissionError: print("У вас нет прав на изменение {0}".format(path))
Чтобы найти текущий рабочий каталог в Python, используйте os.getcwd(), а для изменения текущего рабочего каталога используйте os.chdir(path).
Если у вас есть какие-либо вопросы или отзывы, не стесняйтесь оставлять комментарии.