【发布时间】:2013-05-14 14:34:41
【问题描述】:
我正在使用 python。我正在尝试运行一个进程并使用 subprocess.popen 获取输出。在阅读之后,我看到人们使用communicate()[0],但那不是在文档中,它在一个例子中使用。我想知道是否有人可以告诉我为什么要将 [0] 附加到communication()?
【问题讨论】:
标签: python subprocess popen communicate
我正在使用 python。我正在尝试运行一个进程并使用 subprocess.popen 获取输出。在阅读之后,我看到人们使用communicate()[0],但那不是在文档中,它在一个例子中使用。我想知道是否有人可以告诉我为什么要将 [0] 附加到communication()?
【问题讨论】:
标签: python subprocess popen communicate
来自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'
【讨论】: