0
我正在使用python。我試圖運行一個進程,並使用subprocess.popen獲取輸出。閱讀後,我看到人們使用溝通()[0],但那不是在文檔中,它在一個例子中使用。我想知道是否有人可以填補我爲什麼會追加[0]溝通()?.communicate()和.communicate()[0]有什麼區別?
我正在使用python。我試圖運行一個進程,並使用subprocess.popen獲取輸出。閱讀後,我看到人們使用溝通()[0],但那不是在文檔中,它在一個例子中使用。我想知道是否有人可以填補我爲什麼會追加[0]溝通()?.communicate()和.communicate()[0]有什麼區別?
從docs:
Popen.communicate(input=None)
與互動的過程:將數據發送至標準輸入。從stdout和stderr中讀取數據, ,直到達到文件結尾。等待進程到 終止。可選的輸入參數應該是一個字符串,將 發送給子進程,如果沒有數據發送給子進程,則爲None。
communicate()
返回元組(stdoutdata,stderrdata)。
所以communicate()[0]
被用於訪問和stdoutdata
communicate()[1]
訪問stderrdata
要訪問的元素中的元組,或者我們使用索引列表中,第一元件是在索引0
>>> tup = ("foo", "bar")
>>> tup[0]
'foo'
>>> tup[1]
'bar'