通过Cisco Config解析

时间:2018-08-29 11:15:29

标签: python cisco configparser

我一直在尝试编写Python脚本来完成20种cisco配置。

到目前为止,我有一个脚本可以在一个配置上工作,它解析了没有802.1x authentication*接口命令的接口。

我无法从列表中删除interface Tengiginterface vlan*。最好的方法是什么?我在下面尝试了以下几种方法,但是没有运气。也许我只是在错误地使用它们?

list.remove(Interface Vlan*) 

for item in list(NoDot1x):
  somelist.remove("Interface Vlan*")

代码:

    #Int Modules
    from ciscoconfparse import CiscoConfParse

    #Define what to Parse
    parse = CiscoConfParse("/home/jbowers/Configs/SwithConfig")

    #Define all Interfaces without Authentication * commands
    all_intfs = parse.find_objects(r"^interf")
    NoDot1x = list()
    NoDot1x = parse.find_objects_wo_child(r'^interface', r'authentication')

   #Display Results
   for obj in NoDot1x:
       print obj.text

   #Remove Uplinks
   for item in list(NoDot1x):
     somelist.remove("Interface Vlan*")

这是#Display结果的输出。

interface Port-channel1
interface FastEthernet1
interface GigabitEthernet1/1
interface TenGigabitEthernet5/1
interface TenGigabitEthernet5/2
interface TenGigabitEthernet5/3
interface TenGigabitEthernet5/4
interface TenGigabitEthernet5/5
interface TenGigabitEthernet5/6
interface TenGigabitEthernet5/7
interface TenGigabitEthernet5/8
interface TenGigabitEthernet6/1
interface TenGigabitEthernet6/2
interface TenGigabitEthernet6/3
interface TenGigabitEthernet6/4
interface TenGigabitEthernet6/5
interface TenGigabitEthernet6/6
interface TenGigabitEthernet6/7
interface TenGigabitEthernet6/8
interface GigabitEthernet7/23
interface GigabitEthernet8/17
interface GigabitEthernet9/2
interface Vlan1

1 个答案:

答案 0 :(得分:0)

Python中list对象提供的remove函数将尝试查找与输入字符串完全匹配的内容,如果找到则删除该内容,否则将出错。

int

以上内容将不使用通配符“ *”。 我认为您想要更多类似的东西:

#Remove Uplinks
for item in list(NoDot1x):
 somelist.remove("Interface Vlan*")

如果您需要更多的复杂性,请查看重新导入。