我需要知道我在这里必须执行的所有操作才能成功获得子流程命令。
我已经尝试了堆栈溢出时提供的其他解决方案。
>>> stdin,stdout,stderr = sp.Popen(["ps -ef |grep -i user1 |awk '{print $NF}'"],shell=True,stdout=sp.PIPE).communicate()[0]
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: too many values to unpack
答案 0 :(得分:1)
Popen返回两个数据流( val=
1 1 1 1 1
1 1 1 1 1
1 1 1 1 0
1 1 1 1 0
1 1 1 0 0
1 1 1 0 0
1 1 0 0 0
1 1 0 0 0
1 0 0 0 0
1 0 0 0 0
0 0 0 0 0
0 0 0 0 0
)的元组,而不是3。将要发送的任何内容作为参数val = (1:N+step).' <= index
传递给stdout, stderr
。
communicate
返回一个元组(input
,communicate()
)。如果以文本模式打开流,则数据将为字符串;否则,数据为字符串。否则为字节。