Это не то, как работают трубы.Каналы имеют дело с вводом и выводом, а не с программами, их генерирующими.
Тем не менее, subprocess
также может использовать каналы - если вы передадите stdout=subprocess.PIPE
, вы получите поток stdout для процесса, который вы можетечитать постепенно.Конечно, если вы заботитесь о кодах возврата, вам все равно придется подождать, пока первый процесс завершится, что означает, что разницы в буферизации на самом деле не так много - весь вывод первой команды будет буферизован до того, как вы увидитекод возврата.