Автор оригинала: Neeraj Sujan.
Если вы работали в приложении Python, где у вас были данные в другой папке, вы бы использовали инструмент командной строки, как CD
Чтобы изменить каталоги. В этом руководстве мы узнаем больше питонового пути изменения каталогов.
Изменение каталогов с использованием функции OS.chdir
Самый простой способ изменить рабочий каталог в Python, импортирует ОС Пакет и звонить в ЧДИР ()
функция. Функция принимает в целевой каталог в качестве входного параметра
Давайте увидим пример
- Получить текущий рабочий каталог
Сначала сначала посмотрите текущий рабочий каталог в Python. Мы можем достичь этого, позвонив OS.Getcwd ()
функция
import os os.getcwd()
Мы получаем следующий вывод, когда мы выполняем вышеуказанные две линии
/content
- Получить содержимое текущего рабочего каталога
Теперь мы сделаем вызов функции, чтобы получить содержимое рабочего каталога. Мы можем сделать это, вызвав следующую функцию в Python
os.listdir()
Мы получаем следующий вывод
['.config', 'sample_data']
- Перейдите к целевому каталогу
Теперь мы будем использовать OS.chdir ()
Функция для навигации к 'образец данных'
каталог
os.chdir('sample_data')
Теперь мы можем снова позвонить OS.Getcwd ()
Функция для проверки того, был ли каталог был изменен.
os.chdir('sample_data')
Мы получаем следующий вывод
/content/sample_data
Изменение рабочего каталога с использованием менеджера контекста
Второй подход к изменению рабочего каталога использует контекстный менеджер. Давайте увидим пример и преимущества использования менеджера контекста.
В предыдущем примере рабочее каталог меняется даже вне функции. Большую часть времени мы хотели бы выросли логику внутри функции, и как только мы выйдем на функцию, мы хотели бы вернуть предыдущий рабочий каталог. Контекстный менеджер помогает нам достичь этого без каких-либо ошибок
- Импортировать библиотеки
Давайте сначала импортируем библиотеки
from contextlib import contextmanager import os
- Функция для изменения каталогов
Теперь мы будем реализовать функцию Call juste_path ()
используя @ContextManager
Функция декоратора Отказ
@contextmanager def change_path(newdir): old_path = os.getcwd() os.chdir(os.path.expanduser(newdir)) try: yield finally: os.chdir(old_path)
- Позвоните в функцию change_path
with change_path('sample_data'): print(os.getcwd())
Мы получаем следующий вывод
/content/sample_data
Если мы сейчас позвоним OS.Getcwd ()
Мы получаем следующий вывод
/content
Как вы можете видеть за пределами контекста change_path, мы находимся в предыдущем каталоге. Мы можем сделать обработку, изменив каталог внутри контекста функции Change_Path
Резюме
В этом руководстве мы посмотрели два способа изменить рабочий каталог в Python.
- Использование
getcwd ()
Мы можем изменить каталог, но каталог также изменяется за пределами объема функции - Использование
ContextManager
Мы можем изменить каталог без ошибок и вне контекста функции, каталог не изменен.