Для выполнения такого подробного взаимодействия (когда, вне вашего контроля, другая программа может буферизовать свой вывод, если она не думает, что разговаривает с терминалом) требуется что-то вроде pexpect - что в свою очередь требует pty
, стандартный модуль библиотеки Python, который (в операционных системах, которые позволяют это, например, Linux и Mac OS x) реализует «псевдо-терминалы».
Жизнь в Windows сложнее, но, может быть, этот zipfile может помочь - это должен быть порт pexpect
для Windows (извините, у меня нет машины с Windows, чтобы проверить его). Данный проект, называемый wexpect
, живет здесь .