Выполнение командной строки в другой папке

Я os.system(command) программу командной строки в python, используя os.system(command) .

Как я могу вызвать эту команду для передачи другой папки? Есть системный вызов для этого? Или я должен сохранить текущую папку, а после выполнения изменить ее восстановить.

Модуль subprocess является очень хорошим решением.

 import subprocess p = subprocess.Popen([command, argument1,...], cwd=working_directory) p.wait() 

Он также имеет аргументы для изменения переменных среды, перенаправления ввода / вывода на вызывающую программу и т. Д.

os.chdir(path) попробуйте os.chdir(path) .

Отсюда :

os.chdir (path) Измените текущий рабочий каталог на путь.

Доступность: Unix, Windows

РЕДАКТИРОВАТЬ

Это изменит текущий рабочий каталог, вы можете получить текущую работу:

 os.getcwd() 

Если вы хотите сохранить его и восстановить позже, если вам нужно выполнить некоторую работу в исходном рабочем каталоге.

EDIT 2

В любом случае вам следует перейти к subprocess ( doc ), как это предлагается здесь . Если вы используете subprocess Popen вас есть выбор для предоставления параметра cwd для указания рабочего каталога для подпроцесса: прочитайте это .

 subprocess.Popen(args, bufsize=0, executable=None, stdin=None, stdout=None, stderr=None, preexec_fn=None, close_fds=False, shell=False, cwd=None, env=None, universal_newlines=False, startupinfo=None, creationflags=0) 

Если cwd не является None, текущий каталог ребенка будет изменен на cwd до его выполнения. Обратите внимание, что этот каталог не учитывается при поиске исполняемого файла, поэтому вы не можете указать путь программы относительно cwd.