Как использовать subprocess.Popen для соединения нескольких процессов по каналам?

Как выполнить следующую команду оболочки с использованием Pythonsubprocess модуль?

echo "input data" | awk -f script.awk | sort > outfile.txt

Входные данные будут поступать из строки, поэтому мне на самом деле не нужноecho, У меня так далеко, может кто-нибудь объяснить, как я получаю это через трубуsort тоже?

p_awk = subprocess.Popen(["awk","-f","script.awk"],
                          stdin=subprocess.PIPE,
                          stdout=file("outfile.txt", "w"))
p_awk.communicate( "input data" )

ОБНОВИТЬ: Обратите внимание, что хотя принятый ответ, приведенный ниже, на самом деле не отвечает на поставленный вопрос, я считаю, что С. Лотт прав, и лучше вообще не решать эту проблему!

Ответы на вопрос(8)

Ваш ответ на вопрос