Próbuję uruchomić program (HandBreakCLI) jako podproces lub wątek z poziomu Pythona 2.7. Doszedłem aż do uruchomienia, ale nie mogę się dowiedzieć, jak monitorować to stderr i stdout.Monitorowanie zapytania stderr i stdout podprocesu
Program wyświetla swój status (% done) i informacje o kodowaniu odpowiednio na stderr i stdout. Chciałbym być w stanie okresowo pobrać% wykonane z odpowiedniego strumienia.
Próbowałem wywoływania podprocesu.Popen z stderr i stdout ustawionym na PIPE i używając podprocesu.communicate, ale siedzi i czeka, aż proces zostanie zabity lub zakończony, następnie pobiera dane wyjściowe. Nie robi mi wiele dobrego.
Mam go uruchomione jako wątek, ale o ile mogę powiedzieć, nadal muszę w końcu wywołać podproces.Popen, aby uruchomić program i uruchomić w tej samej ścianie.
Czy podążam tą właściwą drogą? Jakie mam inne opcje lub jak mogę je uruchomić zgodnie z opisem?
'communic()' zawsze czeka na zakończenie procesu; będziesz musiał przeczytać bezpośrednio ze stderr. Czy możesz napisać jakiś kod? – senderle