如何解决Python ciscoconfparse 查找关闭接口和整个接口块?
以下示例将使用取自 http://pennington.net/tutorial/ciscoconfparse/ccp_tutorial.html#slide3
的此配置! filename:exampleswitch.conf
!
hostname ExampleSwitch
!
interface GigabitEthernet 1/1
switchport mode trunk
shutdown
!
interface GigabitEthernet 1/2
switchport mode access
switchport access vlan 20
switchport nonegotiate
no cdp enable
!
interface GigabitEthernet 1/3
no switchport
ip address 192.0.2.1 255.255.255.0
这也是取自http://pennington.net/tutorial/ciscoconfparse/ccp_tutorial.html#slide7
的代码from ciscoconfparse import CiscoConfParse
parse = CiscoConfParse('exampleswitch.conf',Syntax='ios')
for intf_obj in parse.find_objects_w_child('^interface','^\s+shutdown'):
print("Shutdown: " + intf_obj.text)
$ python script.py
Shutdown: interface GigabitEthernet 1/1
$
代码运行良好。但不是只显示 Shutdown: interface GigabitEthernet 1/1
,是否可以在输出中显示整个 interface GigabitEthernet 1/1
块:
interface GigabitEthernet 1/1
switchport mode trunk
shutdown
解决方法
我猜你要找的是find_blocks。
find_blocks(linespec,exactmatch=False,ignore_ws=False)。 找到与 linespec 匹配的所有兄弟姐妹,然后找到这些兄弟姐妹的所有父母 兄弟姐妹。返回按行号排序的配置行列表, 最低先
查看包含示例的 Ciscoconfparse API Documentation。
所以我想它看起来像这样:
from ciscoconfparse import CiscoConfParse
parse = CiscoConfParse('exampleswitch.conf',syntax='ios')
for intf_obj in parse.find_blocks(r'^\sshutdown'):
print(intf_obj)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。