Я думаю, вы хотите создать экземпляр двух отдельных объектов Popen, один для «ls», а другой для «sed». Вы хотите передать первый атрибут stdout
объекта Popen в качестве аргумента stdin
второму объекту Popen.
Пример:
p1 = subprocess.Popen('ls ...', stdout=subprocess.PIPE)
p2 = subprocess.Popen('sed ...', stdin=p1.stdout, stdout=subprocess.PIPE)
print p2.communicate()
Вы можете сохранить цепочку этого если у вас больше команд:
p3 = subprocess.Popen('prog', stdin=p2.stdout, ...)
Дополнительную информацию о работе с подпроцессами см. в документации к подпроцессу .