Для этого вы можете использовать UNIX named pipe.
Сначала вы создаете именованный объект pipe, выполнив mkfifo named_pipe
в том же каталоге, где у вас есть файлы python.
Ваш foo.py
тогда может выглядеть следующим образом:
while True:
for line in open('named_pipe'):
print 'Got: [' + line.rstrip('\n') + ']'
И ваш bar.py
может выглядеть следующим образом:
import sys
print >>open('named_pipe', 'wt'), sys.argv[-1]
Таким образом, вы запустите процесс потребительскую так: python foo.py &
. И, наконец, каждый раз, когда вы выполняете python bar.py Hello
, вы увидите сообщение Got: [Hello]
в своей консоли.
UPD: в отличие от ответа Павла, если вы используете , называемый трубой, вам не нужно запускать один из процессов изнутри другого.