|不在Subprocess.call中工作

时间:2018-05-08 04:28:21

标签: python command subprocess shlex

每当我在子进程中使用" |"在它没有工作它有一个输出     命令" |"未知,请在链接帮助"中尝试#34; 或者当我说出来时:

#!/usr/bin/python
from subprocess import call
from shlex import split

interface = call(split("ip -o link show | awk '{print $2}' | grep wl"))

它输出:

Error: either "dev" is duplicate, or "awk" is a garbage.

1 个答案:

答案 0 :(得分:0)

虽然我无法将两个管道操作链接起来,但您可以使用subprocess.check_output方法和Popen类。部分解决方案:

from subprocess import check_output, Popen, PIPE
from shlex import split

process = Popen(split('ip -o link show'), stdout=PIPE)
output = check_output(('awk', '{print $2}'), stdin=process.stdout)
return_code = process.wait()
print(output, return_code)

基本上,awk采用process标准输出,结果保存在output变量中。