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