Использование модуля Subprocess в Python
Немного нубский вопрос, и всё же.
Такая задача: нужно обмениваться с программой строчками текста.
Например как-то так
from subprocess import Popen, PIPE
proc = Popen(['cat', '-'], stdin=PIPE, stdout=PIPE)
for number in ('one', 'two', 'three'):
proc.stdin.write(number + '\n')
print proc.stdout.read()
В консоли вызвав «cat -» получается ответ при нажатии Enter.
При чтении stdout в Python, вызов блокируется. В этом и проблема.
Работать будет, если закрыть stdin или использовать subprocess.communicate. Но communicate тоже закрывает stdin, а он должен оставаться открытым. Посылка EOF (вроде 0x1a) после строки тоже не действует.
Как можно решить эту проблему?