Я пытаюсь написать скрипт python, который упаковывает наше программное обеспечение. Этот скрипт должен построить наш продукт и упаковать его. В настоящее время мы имеем другие скрипты, которые делают каждую часть отдельно, включая скрипты csh и perl. Один такой скрипт запускается следующим образом:Возможно ли связываться с подпроцессом с подпроцессом.Popen?
sudo mod args
где mod - это скрипт perl; поэтому в python я бы сделал
proc = Popen(['sudo', 'mod', '-p', '-c', 'noresource', '-u', 'dtt', '-Q'], stderr=PIPE, stdout=PIPE, stdin=PIPE)
Проблема в том, что этому сценарию мод необходимо ответить на несколько вопросов. Для этого я думал, что традиционные
(stdout, stderr) = proc.communicate(input='y')
будет работать. Я не думаю, что он работает, потому что процесс, которым управляет Popen, - это sudo, а не сценарий мод, который задает вопрос. Есть ли способ связаться со сценарием мод и все еще запустить его через sudo?
Я пробовал pexpect и работал как «ожидаемый». Благодаря! – darrickc