Поиск по сайту:
Жизнь — трагедия для того, кто чувствует, и комедия для того, кто мыслит (Ж. Лабрюйер).

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

14.10.2020
Программа Python для проверки високосного года

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

Когда вы запускаете сценарий Python, в качестве текущего рабочего каталога устанавливается каталог, из которого выполняется сценарий.

Модуль os python обеспечивает переносимый способ взаимодействия с операционной системой. Модуль является частью стандартной библиотеки 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'>
Если вы хотите найти каталог, в котором находится сценарий, используйте os.path.realpath(__file__). Он вернет строку, содержащую абсолютный путь к запущенному скрипту.

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

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

os.getcwd(path)

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

Читать  Как преобразовать файл SVG или PDF в Base64?

Вот пример:

# Импорт модуля 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).

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

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (3 оценок, среднее: 3,67 из 5)
Загрузка...
Поделиться в соц. сетях:


0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

**ссылки nofollow

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии

Это может быть вам интересно


Рекомендуемое
Если вы используете SSH для подключения к удаленным серверам Linux,…

Спасибо!

Теперь редакторы в курсе.