Вопрос по pipe, popen, python, subprocess – Откройте команду, содержащую необходимость сказать да для всех выходов

2

Мне нужно автоматизировать следующую команду

cmd="yes | vgremove <vgname>"

всякий раз, когда я кодирую эту команду с

Popen(cmd.split(),stdout=PIPE,stderr=PIPE)

это не завершено. Я подозреваю, что он ждет, пока команда не будет завершена, поэтому трубка пробита, есть ли альтернатива этому ???

Ваш Ответ

2   ответа
3

shell=True на что. Без чего ты делаешьshell=True выполняетyes с аргументами.yes никогда не останавливается, поэтому подпроцесс никогда не возвращается.

7

Popen('vgremove -f <vgname>')

Что касается вашего вопроса конкретно:

p = Popen(cmd.split(), stdout=PIPE, stderr=PIPE, stdin=PIPE)
p.stdin.write('yes')

Похожие вопросы