Я прочитал каждую нить я нашел на StackOverflow на вызов команды оболочки Python с помощью subprocess
, но я не мог найти ответ, который относится к моей ситуации ниже:Shell трубы с подпроцесс в Python
Я хотел бы сделать из Python:
Выполнение команды оболочки
command_1
. Собирают выход в переменнойresult_1
Shell трубы
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
не моделирует процесс получения вывода команды для трубопроводов.
Возможно ли это с использованием подпроцесса? Если да, то как?
См. [Этот пример в документах] (http://docs.python.org/library/subprocess.html#replacing-shell-pipeline) для правильного пути его выполнения. –
Спасибо @SvenMarnach, это все равно позволит мне собрать результат первой команды в переменной Python? –