Выполнение команд из скрипта Python - PullRequest
0 голосов
/ 05 декабря 2011

Я работаю над автоматизацией процесса перепрошивки платы разработки.У меня есть инструмент для перепрошивки командной строки, который позволяет мне выполнять различные команды, необходимые для перепрошивки доски.

Я пытаюсь автоматизировать то же самое с помощью скрипта Python.Я использую subProcess.Popen для запуска .exe, а затем мне нужно выполнить другие команды.Я разместил ниже код sudo:

  1. process = subprocess.Popen(filename.exe, shell=True, stdin=subprocess.PIPE, stdout=subprocess.PIPE)
  2. process.communicate(arg) Я также пытался с
  3. subProcess.stdin(arg)

Но я не могу получить желаемый результат.Я попытался создать пакетный файл, а затем запустить его из Python, но мне тоже не повезло.Он просто запускает исполняемый файл, а затем закрывает его.

Может ли кто-нибудь помочь мне в решении этой проблемы.Я только начал со сценариями Python, поэтому, пожалуйста, помогите мне.

Ответы [ 4 ]

0 голосов
/ 05 декабря 2011

Вы должны удалить «shell = True», так как вам, вероятно, не нужно запускать exe-программу через оболочку. Для аргументов, это идет так:

process = subprocess.Popen(['filename.exe', arg1, arg2], stdin=subprocess.PIPE, stdout=subprocess.PIPE)
0 голосов
/ 05 декабря 2011

Догадываясь из своего вопроса, вы пытаетесь выполнить серию команд, верно? Например:

filename.exe arg1 arg2
file2.exe arg3 arg4

Самый простой способ сделать это:

import subprocess
subprocess.check_output(['filename.exe', 'arg1', 'arg2'])
subprocess.check_output(['file2.exe', 'arg3', 'arg4'])

документы для subprocess.check_output

0 голосов
/ 05 декабря 2011

Как насчет простого добавления аргумента в командную строку следующим образом:

p = subprocess.Popen('%s %s' % (filename, args), shell=True)
sts = os.waitpid(p.pid, 0)[1]
0 голосов
/ 05 декабря 2011

Вы можете использовать os.system () (http://docs.python.org/library/os.html#os.system) для запуска другой программы из python.

...