Подпроцесс Python: как использовать каналы трижды? [Дубликат]

На этот вопрос уже есть ответ здесь:

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

Я хотел бы использовать подпроцесс в следующей строке:

convert ../loxie-orig.png bmp:- | mkbitmap -f 2 -s 2 -t 0.48 | potrace -t 5 --progress -s -o ../DSC00232.svg

Я нашел спасибо другим постамдокументация подпроцесса но в примере мы используем только дважды трубу.

Итак, я пытаюсь для двух из трех команд, и это работает

p1 = subprocess.Popen(['convert', fileIn, 'bmp:-'], stdout=subprocess.PIPE)
# p2 = subprocess.Popen(['mkbitmap', '-f', '2', '-s', '2', '-t', '0.48'], stdout=subprocess.PIPE)
p3 = subprocess.Popen(['potrace', '-t' , '5', '-s' , '-o', fileOut], stdin=p1.stdout,stdout=subprocess.PIPE)
p1.stdout.close()  # Allow p1 to receive a SIGPIPE if p3 exits.
output = p3.communicate()[0]

Можете ли вы помочь мне для третьей команды?

Большое спасибо.

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

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