2013-05-20 7 views
0

파이썬을 사용하고 있습니다. 프로세스를 실행하고 subprocess.popen을 사용하여 출력을 가져 오려고합니다. 주위를 읽은 후 사람들이 의사() [0]를 사용하는 것을 보지만, 문서에서는 그렇지 않습니다. 예를 들어 사용됩니다. 나는 누군가가 왜 [0]에 의사 소통을 추가 할 것인가에 관해 나를 채울 수 있을지 궁금해하고있다. docs에서.communicate()와 .communicate() [0]의 차이점은 무엇입니까?

답변

2

: 공정

Popen.communicate(input=None) 

상호 작용은 : 표준 입력에 데이터를 전송합니다. 파일 끝에 도달 할 때까지 stdout 및 stderr에서 데이터를 읽습니다 ( ). 프로세스가 될 때까지 기다립니다. 선택적 입력 인수는 자식 프로세스에 을 보낼 문자열이거나 자식에게 데이터를 보내지 않으면 None입니다.

communicate()튜플 (stdoutdata, stderrdata)을 반환합니다. 그래서 communicate()[0]

는 튜플 또는 우리가 인덱스를 사용 목록에서 요소에 액세스하려면 stderrdata

에 액세스 할 수 stdoutdatacommunicate()[1]에 액세스하는 데 사용됩니다, 첫 번째 요소는 인덱스 0

>>> tup = ("foo", "bar") 
>>> tup[0] 
'foo' 
>>> tup[1] 
'bar' 
에있다