【问题标题】:How to parse netsh output using python如何使用python解析netsh输出
【发布时间】:2016-11-04 16:58:28
【问题描述】:

我得到了预期的输出:

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

作为

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

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

x.split() 抛出错误“AttributeError: 'int' object has no attribute 'split'” 我累了其他几种方法但没有奏效。

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

【问题讨论】:

  • 我知道并回答了,但您的输入代码格式错误,并且包含尾随 as...

标签: python subprocess netsh


【解决方案1】:

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

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

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

那么x 包含netsh 程序提供的输出。

作为一般说明,请注意最好以这样的字符串传递参数:

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

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

【讨论】:

  • 过滤结果,因为 x.split() 拆分每个字符串,因此如果网络名称包含多个单词,它将拆分为两个字符串,例如“本地”“网络”。无论如何转换数据集中的字符串数据,以便我可以在一个字符串中检索整个网络名称作为“本地网络”?
猜你喜欢
  • 2021-02-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-11-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多