错误:在子进程中转义AWK命令

问题描述 投票:0回答:1

我需要知道我必须在这里逃避什么才能使subprocess命令成功。

我已经尝试过堆栈溢出时提供的其他解决方案。

>>> 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
python subprocess
1个回答
1
投票

Popen返回两个数据流(stdout, stderr)的元组,而不是3.将要发送到communicate的任何内容作为input参数传递。

communicate()返回一个元组(stdout_datastderr_data)。如果以文本模式打开流,则数据将是字符串;否则,字节。

https://docs.python.org/3/library/subprocess.html

© www.soinside.com 2019 - 2024. All rights reserved.