Я пытаюсь запустить программу (HandBreakCLI) как подпроцесс или поток изнутри python 2.7. Я уже начал его, но не могу понять, как отслеживать его stderr и stdout.
Программа выводит свой статус (% done) и информацию о кодировании в stderr и stdout, соответственно. Я' Я бы хотел иметь возможность периодически получать% done из соответствующего потока.
Я пробовал вызвать subprocess.Popen с stderr и stdout, установленными на PIPE, и с помощью subprocess.communicate, но он сидит и ждет, пока процесс не будет убит или завершен, а затем получит результат. Это не приносит мне особой пользы.
У меня он запущен и работает как поток, но, насколько я могу судить, мне все равно придется вызвать subprocess.Popen, чтобы выполнить программу и столкнуться с той же стеной.
Правильно ли я поступаю? Какие еще варианты у меня есть или как заставить это работать, как описано?