Рубрики
Без рубрики

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

Если вы работали в приложении Python, где у вас были данные в другой папке, вы бы использовали инструмент командной строки, такой как CD, чтобы изменить каталоги. В этом руководстве мы узнаем больше питонового пути изменения каталогов. https://youtu.be/82w0rwsnqwi Изменение каталогов с использованием функции OS.CHDIR Самый простой способ изменить рабочий каталог … Как изменить рабочий каталог в Python Подробнее »

Автор оригинала: Neeraj Sujan.

Если вы работали в приложении Python, где у вас были данные в другой папке, вы бы использовали инструмент командной строки, как CD Чтобы изменить каталоги. В этом руководстве мы узнаем больше питонового пути изменения каталогов.

Изменение каталогов с использованием функции OS.chdir

Самый простой способ изменить рабочий каталог в Python, импортирует ОС Пакет и звонить в ЧДИР () функция. Функция принимает в целевой каталог в качестве входного параметра

Давайте увидим пример

  1. Получить текущий рабочий каталог

Сначала сначала посмотрите текущий рабочий каталог в Python. Мы можем достичь этого, позвонив OS.Getcwd () функция

import os
os.getcwd()

Мы получаем следующий вывод, когда мы выполняем вышеуказанные две линии

/content
  1. Получить содержимое текущего рабочего каталога

Теперь мы сделаем вызов функции, чтобы получить содержимое рабочего каталога. Мы можем сделать это, вызвав следующую функцию в Python

os.listdir()

Мы получаем следующий вывод

['.config', 'sample_data']
  1. Перейдите к целевому каталогу

Теперь мы будем использовать OS.chdir () Функция для навигации к 'образец данных' каталог

os.chdir('sample_data')

Теперь мы можем снова позвонить OS.Getcwd () Функция для проверки того, был ли каталог был изменен.

os.chdir('sample_data')

Мы получаем следующий вывод

/content/sample_data   

Изменение рабочего каталога с использованием менеджера контекста

Второй подход к изменению рабочего каталога использует контекстный менеджер. Давайте увидим пример и преимущества использования менеджера контекста.

В предыдущем примере рабочее каталог меняется даже вне функции. Большую часть времени мы хотели бы выросли логику внутри функции, и как только мы выйдем на функцию, мы хотели бы вернуть предыдущий рабочий каталог. Контекстный менеджер помогает нам достичь этого без каких-либо ошибок

  1. Импортировать библиотеки

Давайте сначала импортируем библиотеки

from contextlib import contextmanager
import os
  1. Функция для изменения каталогов

Теперь мы будем реализовать функцию 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)
  1. Позвоните в функцию change_path
with change_path('sample_data'):
    print(os.getcwd())

Мы получаем следующий вывод

/content/sample_data

Если мы сейчас позвоним OS.Getcwd () Мы получаем следующий вывод

/content

Как вы можете видеть за пределами контекста change_path, мы находимся в предыдущем каталоге. Мы можем сделать обработку, изменив каталог внутри контекста функции Change_Path

Резюме

В этом руководстве мы посмотрели два способа изменить рабочий каталог в Python.

  1. Использование getcwd () Мы можем изменить каталог, но каталог также изменяется за пределами объема функции
  2. Использование ContextManager Мы можем изменить каталог без ошибок и вне контекста функции, каталог не изменен.