Для тех, кто приходит сюда через Google: на самом деле есть очень хороший способ использования именованных каналов:
сначала создайте 2 канала имен:
mkfifo pipe1
mkfifo pipe2
затем запустите это:
echo -n x | cat - pipe1 > pipe2 & cat <pipe2 > pipe1
это заставит команды cat постоянно копировать букву x друг другу. Так что теперь вы можете свободно использовать собственные программы вместо cat для обработки ввода и вывода. Это не ограничивается питоном. Вы также можете подключить Java-программу к программе на C ++.
Например, если ваши программы называются A.py и B.py, начальная команда будет выглядеть так:
echo -n x | ./A.py - pipe1 > pipe2 & ./B.py <pipe2 > pipe1