.communicate() 和 .communicate()[0] 有什么区别?

inc*_*to2 2 python subprocess popen communicate

我正在使用蟒蛇。我正在尝试运行一个进程并使用 subprocess.popen 获取输出。在阅读之后,我看到人们使用了communication()[0] 但这不在文档中,它在一个示例中使用。我想知道是否有人可以告诉我为什么要附加 [0] 到communication()?

Ash*_*ary 6

文档

Popen.communicate(input=None)
Run Code Online (Sandbox Code Playgroud)

与进程交互:将数据发送到标准输入。从 stdout 和 stderr 读取数据,直到到达文件结尾。等待进程终止。可选的输入参数应该是要发送到子进程的字符串,如果没有数据应该发送到子进程,则为 None。

communicate()返回一个元组(stdoutdata, stderrdata)。

Socommunicate()[0]用于访问stdoutdatacommunicate()[1]访问stderrdata

要访问元组或列表中的元素,我们使用索引,第一个元素位于索引 0。

>>> tup = ("foo", "bar")
>>> tup[0]
'foo'
>>> tup[1]
'bar'
Run Code Online (Sandbox Code Playgroud)