Python: Как читать стандартный вывод подпроцесса неблокирующим способом

Я пытаюсь сделать простой скрипт на Python, который запускает подпроцесс и отслеживает его стандартный вывод. Вот фрагмент кода:

process = subprocess.Popen([path_to_exe, os.path.join(temp_dir,temp_file)], stdout=subprocess.PIPE)
while True:   
    output=process.stdout.readline()
    print "test"

Проблема в том, что скрипт висит наoutput=process.stdout.readline() и что линияprint "test" выполняется только после завершения подпроцесса.

Есть ли способ прочитать стандартный вывод и распечатать его, не дожидаясь завершения подпроцесса?

Подпроцесс, который я запускаю, является двоичным файлом Windows, для которого у меня нет исходного кода.

Я нашел несколько похожих вопросов, но ответы применимы только в Linux или в случае, если у меня есть источник суперпроцесса, который я запускаю.

Ответы на вопрос(2)

Ваш ответ на вопрос