如何使用 python 解析 netsh 输出

How to parse netsh output using python

我得到了预期的输出:

import subprocess x = subprocess.call('netsh interface show interface')

作为

管理状态状态类型接口名称
---------------------------------------------- ----------------------
已启用连接的专用以太网 0

但是当尝试如下解析 netsh 输出时:

x.split() Throws error "AttributeError: 'int' object has no attribute 'split'" I tired several other ways but didn't worked.

我正在尝试使用 python 从 netsh 输出中检索(过滤)接口名称。

subprocess.call 只是 return 的 return 代码,而不是命令的输出流。

要做你想做的事,你可以这样做:

p = subprocess.Popen('netsh interface show interface',stdout=subprocess.PIPE)
[x,err] = p.communicate() 

然后 x 包含 netsh 程序提供的输出。

作为一般性评论,请注意最好在字符串中传递参数,如下所示:

['netsh','interface','show','interface'] 

因此您可以更好地控制参数,并且可以传递其中包含空格的参数而无需费心引用它们,引用由 subprocess 模块完成。