[PYTHON] 파이썬 하위 프로세스 통신 방법을 사용할 때 종료 코드를 얻는 방법은 무엇입니까?
PYTHON파이썬 하위 프로세스 통신 방법을 사용할 때 종료 코드를 얻는 방법은 무엇입니까?
파이썬의 서브 프로세스 모듈과 통신 () 메소드를 사용할 때 종료 코드를 검색하려면 어떻게해야합니까?
관련 코드 :
import subprocess as sp
data = sp.Popen(openRTSP + opts.split(), stdout=sp.PIPE).communicate()[0]
내가 다른 방식으로해야할까요?
해결법
-
==============================
1.Popen.communicate가 완료되면 returncode 속성을 설정합니다 (*). 다음은 관련 문서 섹션입니다.
Popen.communicate가 완료되면 returncode 속성을 설정합니다 (*). 다음은 관련 문서 섹션입니다.
Popen.returncode The child return code, set by poll() and wait() (and indirectly by communicate()). A None value indicates that the process hasn’t terminated yet. A negative value -N indicates that the child was terminated by signal N (Unix only).
그래서 당신은 할 수 있습니다. (테스트하지는 않았지만 제대로 작동합니다) :
import subprocess as sp child = sp.Popen(openRTSP + opts.split(), stdout=sp.PIPE) streamdata = child.communicate()[0] rc = child.returncode
(*) 이것은 구현 된 방식 때문에 발생합니다. 자식 스트림을 읽도록 스레드를 설정 한 후 wait를 호출합니다.
-
==============================
2.먼저 프로세스가 실행을 완료하고 .wait 메소드를 사용하여 리턴 코드를 읽었는지 확인해야합니다. 이렇게하면 코드가 반환됩니다. 나중에 액세스하려는 경우 Popen 객체에 .returncode로 저장됩니다.
먼저 프로세스가 실행을 완료하고 .wait 메소드를 사용하여 리턴 코드를 읽었는지 확인해야합니다. 이렇게하면 코드가 반환됩니다. 나중에 액세스하려는 경우 Popen 객체에 .returncode로 저장됩니다.
-
==============================
3.exitcode = data.wait (). 하위 프로세스가 차단됩니다. 표준 출력 / 오류에 쓰거나 표준 입력에서 읽는 경우 피어가 없습니다.
exitcode = data.wait (). 하위 프로세스가 차단됩니다. 표준 출력 / 오류에 쓰거나 표준 입력에서 읽는 경우 피어가 없습니다.
-
==============================
4..poll ()은 리턴 코드를 갱신합니다.
.poll ()은 리턴 코드를 갱신합니다.
시험
child = sp.Popen(openRTSP + opts.split(), stdout=sp.PIPE) returnCode = child.poll()
또한 .poll ()이 호출 된 후 객체에서 반환 코드를 child.returncode로 사용할 수 있습니다.
from https://stackoverflow.com/questions/5631624/how-to-get-exit-code-when-using-python-subprocess-communicate-method by cc-by-sa and MIT license
'PYTHON' 카테고리의 다른 글
[PYTHON] matplotlib에서 subplots 사이의 간격을 제거하는 방법? (0) | 2018.10.10 |
---|---|
[PYTHON] 최대 재시도 횟수가 URL 초과했습니다. (0) | 2018.10.10 |
[PYTHON] cx_freeze를 사용할 때 다른 파일을 어떻게 묶을 수 있습니까? (0) | 2018.10.10 |
[PYTHON] 파이썬 3 웹 스크래핑에서 HTTP 오류 403 (0) | 2018.10.10 |
[PYTHON] 어떻게 파이썬 3으로 INI 파일을 읽고 쓰는가? (0) | 2018.10.10 |