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