过滤 Python 输出
Filtering Python Output
我是 Python 编程新手,所以请多多包涵。我是一名网络工程师,我一直在使用 Netmiko 从我们的路由器和交换机中提取一些信息。我已经 运行 以下代码从我们的框中提取接口描述:
from netmiko import ConnectHandler
device = ConnectHandler(device_type='cisco_ios', ip='1.2.3.4', username='user', password='password')
output = device.send_command("show run | i description")
print (output)
device.disconnect()
这很好地满足了我的需要,但我想做的是过滤输出。在接口描述中,我们有它们所属的客户电路的电路 ID。例如,一个接口描述可能是这样的:
描述客户/A56I0
我们所有的电路 ID 看起来都像那样,我想做的是过滤打印出来的 put 以仅包含这些而不包含其他任何内容。澄清一下,如果界面上的整行显示为 "description Customer/ A56I0",我希望我的输出仅显示为 "A56I0"。我将如何做到这一点?
****编辑****
他是上述脚本输出的示例:
description Customer/Order A79PD
description Customer/Order A79PF
description Customer/Order AA6VG
description Customer/Order A79PE
description Customer/Order A79PC
description Customer/Order AA6VV
description Customer/Order A79PJ
description Customer/Order A79PB
description Customer/Order AA6VA
我想要做的是只获取它拉出的每一行的最后 5 个字符,所以它看起来像这样:
A79PD
A79PF
AA6VG
A79PE
A79PC
AA6VV
A79PJ
A79PB
AA6VA
如果最后5个字符是ID那么,可以通过下面的代码实现
from netmiko import ConnectHandler
device = ConnectHandler(device_type='cisco_ios', ip='1.2.3.4', username='user', password='password')
output = device.send_command("show run | i description")
#Change here
for i in output.splitlines():
print (i[-5:])
device.disconnect()
对输出使用splitlines()
。你会得到一个列表,遍历它然后 print(line[-5:])
from netmiko import ConnectHandler
device =ConnectHandler(device_type='cisco_ios', ip='1.2.3.4',
username='user', password='password')
output = device.send_command("show run | i description")
for i in output.splitlines():
print(i.split()[-1])
device.disconnect()
我是 Python 编程新手,所以请多多包涵。我是一名网络工程师,我一直在使用 Netmiko 从我们的路由器和交换机中提取一些信息。我已经 运行 以下代码从我们的框中提取接口描述:
from netmiko import ConnectHandler
device = ConnectHandler(device_type='cisco_ios', ip='1.2.3.4', username='user', password='password')
output = device.send_command("show run | i description")
print (output)
device.disconnect()
这很好地满足了我的需要,但我想做的是过滤输出。在接口描述中,我们有它们所属的客户电路的电路 ID。例如,一个接口描述可能是这样的:
描述客户/A56I0
我们所有的电路 ID 看起来都像那样,我想做的是过滤打印出来的 put 以仅包含这些而不包含其他任何内容。澄清一下,如果界面上的整行显示为 "description Customer/ A56I0",我希望我的输出仅显示为 "A56I0"。我将如何做到这一点?
****编辑****
他是上述脚本输出的示例:
description Customer/Order A79PD
description Customer/Order A79PF
description Customer/Order AA6VG
description Customer/Order A79PE
description Customer/Order A79PC
description Customer/Order AA6VV
description Customer/Order A79PJ
description Customer/Order A79PB
description Customer/Order AA6VA
我想要做的是只获取它拉出的每一行的最后 5 个字符,所以它看起来像这样:
A79PD
A79PF
AA6VG
A79PE
A79PC
AA6VV
A79PJ
A79PB
AA6VA
如果最后5个字符是ID那么,可以通过下面的代码实现
from netmiko import ConnectHandler
device = ConnectHandler(device_type='cisco_ios', ip='1.2.3.4', username='user', password='password')
output = device.send_command("show run | i description")
#Change here
for i in output.splitlines():
print (i[-5:])
device.disconnect()
对输出使用splitlines()
。你会得到一个列表,遍历它然后 print(line[-5:])
from netmiko import ConnectHandler
device =ConnectHandler(device_type='cisco_ios', ip='1.2.3.4',
username='user', password='password')
output = device.send_command("show run | i description")
for i in output.splitlines():
print(i.split()[-1])
device.disconnect()