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

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

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

  • Control-Alt-Delete из python или командной строки
  • Выполнение многострочных операторов Python в однострочной командной строке
  • Ошибка значения, пытающаяся установить расширения Python для Windows
  • Можно ли запускать python SimpleHTTPServer только на localhost?
  • Python: запустить функцию из командной строки
  • в python получить вывод системной команды в виде строки
  • Почему subprocess.Popen () с shell = True работает по-разному в Linux и Windows?
  • Аргументы командной строки Python (Windows)
  • Как добавить вкладку в оболочку Python?
  • Как сделать резервное копирование tar с помощью python
  • Выполнение команд оболочки без окна оболочки
  • Python: ответ на подсказки командной строки
  • 2 Solutions collect form web for “Выполнение командной строки в другой папке”

    Модуль 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.

    Python - лучший язык программирования в мире.