Я читаю каждую нить, найденную в StackOverflow, при вызове команд оболочки из Python, используя subprocess
, но я не смог найти ответ, относящийся к моей ситуации ниже:
Я бы хотел сделать следующее из Python:
Запустить команду оболочки command_1
. Соберите выходные данные в переменную result_1
Оболочка трубы result_1
в command_2
и сбор выходных данных на result_2
. Другими словами, запустите command_1 | command_2
, используя результат , полученный при запуске command_1
на шаге до
Выполните тот же конвейер result_1
в третьей команде command_3
и соберите результат в result_3
.
Пока я пробовал:
p = subprocess.Popen(command_1, stdout=subprocess.PIPE, shell=True)
result_1 = p.stdout.read();
p = subprocess.Popen("echo " + result_1 + ' | ' +
command_2, stdout=subprocess.PIPE, shell=True)
result_2 = p.stdout.read();
причина, по-видимому, в том, что "echo " + result_1
не моделирует процесс получения вывода команды для трубопровода .
Возможно ли вообще использовать подпроцесс? Если да, то как?