2010-05-19 2 views
0

파이썬에서 외부 바이너리를 실행하고 출력을 감시하는 방법을 찾고 있습니다 : "최신" "최신" t가 반환되었습니다. 원래의 명령을 다시 실행하고 싶습니다. "최신"이 표시되면 다른 스크립트를 실행할 수 있기를 원합니다. 지금까지 서브 프로세스를 사용하여 옵션을 사용하여 바이너리를 실행하는 방법을 알아 냈습니다. 감사!파이썬에서 외부 프로그램을 호출하고 특정 텍스트에 대한 출력을보고 나서 조치를 취하십시오.

+0

중복 : http://stackoverflow.com/questions/2082850/real-time-subprocess-popen-via-stdout-and-pipe, http://stackoverflow.com/questions/881696/unbuffered-stdout-in -python-as-in-python-u-program과 모든 http://stackoverflow.com/search?q=python+stdout 질문에 대한 정보를 제공합니다. –

답변

3

사용는 popen이

과정과 같은 하위 프로세스 =는 popen ("cmd를", 쉘 = 사실, BUFSIZE = BUFSIZE, 표준 출력 = PIPE)

그런 다음 프로그램의 표준 출력에서 ​​읽을 process.stdout을 사용 (같은 객체와 같은 다른 파일에서 읽기).

+0

답장을 보내 주셔서 대단히 감사합니다! 지금까지 나는 이것을 관리 할 수 ​​있었다 : http://pastebin.com/1GNAZ5bB HLDS를 찾지 못하면 어떻게 재실행 할 것인가, 만약 그렇다면 새로운 바이너리를 호출하는 방법을 모르겠다. – bleomycin

+0

현재 페인팅 바에 액세스 할 수 없습니다. 그러나 나는 대답하려고 노력할 것이다. POpen의 각 인스턴스는 하나의 프로세스를 나타냅니다. 그래서 다시 시작하려면 POpen의 새로운 인스턴스를 생성하고 프로세스를 반복해야합니다. – Ivan

관련 문제