我正在使用python。我正在尝试运行一个进程并使用subprocess.popen获取输出。阅读后我看到人们使用communication()[0],但那不在文档中,它在一个例子中使用。我想知道是否有人可以填写我为什么会追加[0]来沟通()?
答案 0 :(得分:3)
来自docs:
Popen.communicate(input=None)
与流程交互:将数据发送到stdin。从stdout和stderr读取数据, 直到达到文件结尾。等待进程 终止。可选的输入参数应该是要发送的字符串 如果没有数据发送给孩子,则为子进程,或者为None。
communicate()
会返回元组(stdoutdata,stderrdata)。
因此communicate()[0]
用于访问stdoutdata
和communicate()[1]
以访问stderrdata
要访问元组或列表中的元素,我们使用索引,第一个元素位于索引0。
>>> tup = ("foo", "bar")
>>> tup[0]
'foo'
>>> tup[1]
'bar'