Equivalent of shell 'cd' command to change the working directory?
Эквивалент команды shell 'cd' для изменения рабочего каталога?
cd это команда shell для изменения рабочего каталога.
Как мне изменить текущий рабочий каталог в Python?
Переведено автоматически
Ответ 1
Вы можете изменить рабочий каталог с помощью:
import os
os.chdir(path)
Вы должны быть осторожны, поскольку изменение каталога может привести к деструктивным изменениям, которые ваш код будет применять в новом расположении. Что еще хуже, не перехватывайте исключения, такие как WindowsError и OSError, после изменения каталога, поскольку это может означать, что деструктивные изменения применяются в старом расположении!
Если вы используете Python 3.11 или новее, рассмотрите возможность использования этого контекстного менеджера, чтобы убедиться, что вы вернетесь к исходному рабочему каталогу, когда закончите:
from contextlib import chdir
with chdir(path): # do stuff here
Если вы используете более старую версию Python, ответ Брайана М. Ханта показывает, как запустить свой собственный контекстный менеджер: его ответ.
Изменение текущего рабочего каталога в подпроцессе не приводит к изменению текущего рабочего каталога в родительском процессе. Это верно и для интерпретатора Python. Вы не можете использовать os.chdir() для изменения CWD вызывающего процесса.
Ответ 2
Вот пример контекстного менеджера для изменения рабочего каталога. Это проще, чем версия ActiveState, упомянутая в другом месте, но эта работа выполняется.
Контекстный менеджер: cd
import os
classcd: """Context manager for changing the current working directory""" def__init__(self, newPath): self.newPath = os.path.expanduser(newPath)