a = Popen(['a'], stdin=PIPE, stdout=PIPE)
with a.stdin:
    with a.stdout:
        with open('outfile.txt', 'wb') as outfile:
            b = Popen(['b'], stdin=a.stdout, stdout=outfile)
a.stdin.write('input data')
statuses = [a.wait(), b.wait()]
Как использовать subprocess.Popen для соединения нескольких процессов по каналам?