2

我正在使用python。我正在尝试运行一个进程并使用 subprocess.popen 获取输出。在阅读之后,我看到人们使用communicate()[0],但那不是在文档中,它被用在一个例子中。我想知道是否有人可以向我解释为什么要将 [0] 附加到通信()?

4

1 回答 1

6

来自文档

Popen.communicate(input=None)

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

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

所以communicate()[0]用于访问stdoutdatacommunicate()[1]访问stderrdata

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

>>> tup = ("foo", "bar")
>>> tup[0]
'foo'
>>> tup[1]
'bar'
于 2013-05-20T04:39:52.083 回答