|在子流程中不工作。

2024-04-24 11:38:44 发布

您现在位置:Python中文网/ 问答频道 /正文

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

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

Tags: fromimport命令ipbin进程is链接
1条回答
网友
1楼 · 发布于 2024-04-24 11:38:44

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

相关问题 更多 >