【问题标题】:| Not Working In Subprocess.call|不在 Subprocess.call 中工作
【发布时间】:2018-10-17 22:43:12
【问题描述】:

每当我在带有“|”的子进程中使用命令时在它不起作用时它的输出为 命令“|”未知,请尝试“在链接帮助中”。 或者当我这样说时:

#!/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.

【问题讨论】:

  • 有没有办法让它工作

标签: python command subprocess shlex


【解决方案1】:

您可以使用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 变量中。

【讨论】:

    猜你喜欢
    • 2014-05-18
    • 2017-09-24
    • 1970-01-01
    • 1970-01-01
    • 2018-10-18
    • 2013-05-14
    • 2017-10-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多