使用 Python 从文件中读取部分

我正在尝试使用 python 将 cisco 运行配置转换为参数,但我一直坚持使用 python 读取配置部分。例如,假设您有以下节:


!

interface Async1

 no ip address

 encapsulation slip

!       

router bgp 65500

 bgp router-id 1.1.1.1

 bgp log-neighbor-changes

 timers bgp 10 30

 neighbor 1.2.3.4 remote-as 1234

 neighbor 1.2.3.4 description Some Description

 neighbor 1.2.3.4 update-source GigabitEthernet0/0

 !

 address-family ipv4

  network 2.2.2.2 mask 255.255.255.255

  network 3.3.3.0 mask 255.255.255.252

  neighbor 1.2.3.4 activate

  neighbor 1.2.3.4 allowas-in 3

  neighbor 1.2.3.4 prefix-list PXL out

 exit-address-family

!

ip forward-protocol nd

no ip http server

no ip http secure-server

!

我想从“路由器 bgp”中读取行,直到第一行以“!”开头 (例如^!),然后重新读取块以将参数提取到变量中。示例输出将是:


router bgp 65500

 bgp router-id 1.1.1.1

 bgp log-neighbor-changes

 timers bgp 10 30

 neighbor 1.2.3.4 remote-as 1234

 neighbor 1.2.3.4 description Some Description

 neighbor 1.2.3.4 update-source GigabitEthernet0/0

 !

 address-family ipv4

  network 2.2.2.2 mask 255.255.255.255

  network 3.3.3.0 mask 255.255.255.252

  neighbor 1.2.3.4 activate

  neighbor 1.2.3.4 allowas-in 3

  neighbor 1.2.3.4 prefix-list PXL out

 exit-address-family

!

注意:我可以使用 awk 或 grep 提取上述代码,但我想将我的 bash 代码转换为 Python。


谢谢!


慕桂英546537
浏览 178回答 2
2回答

森栏

试试这个:from ciscoconfparse import CiscoConfParsebgp = confparse.find_blocks(r"^router bgp 65500")
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python