У меня есть несколько похожий случай, когда я хочу, чтобы программа на Python создала некоторые команды, а затем запустила их, а результат был передан пользователю, который запустил скрипт.Код, который я использую:
import subprocess
def run(cmd):
call = ["/bin/bash", "-c", cmd]
ret = subprocess.call(call, stdout=None, stderr=None)
if ret > 0:
print "Warning - result was %d" % ret
run("javac foo.java")
run("javac bar.java")
В моем случае я хочу, чтобы все команды выполнялись с ошибкой или нет, поэтому у меня не возникает исключение при ошибке.Кроме того, я хочу, чтобы любые сообщения печатались прямо в терминале, поэтому у меня есть stdout и stderr, равные None, что заставляет их не идти в мою программу на python.Если ваши потребности в ошибках и сообщениях немного отличаются, посмотрите документацию http://docs.python.org/library/subprocess.html о том, как настроить то, что происходит.
(я прошу bash запустить для меня мою команду, чтобы яполучить мой обычный путь, цитирование и т. д.)