问题描述
我试图使代码更整洁,更易于管理,我想从读取cisco文件开始。但是,当我尝试将其放入函数中时,它无法为我提供输出。相同功能完全可以发挥作用
工作模式
parse = CiscoConfParse("C:\\python\\mydata\\TestConfigFile.txt")
Tcpsrv = parse.find_objects("service\stcp\sdestination\seq")
UDPSrv = parse.find_objects("service\sudp\sdestination\seq")
ObjectNetwork = parse.find_objects("^object\snetwork\s")
ObjectGroupSrv = parse.find_objects("^object-group\sservice")
ObjectGroupNetwork = parse.find_objects("^object-group\snetwork\s")
Tcpsrv = [<IOSCfgLine # 83 ' service tcp destination eq https' (parent is # 82)>,<IOSCfgLine # 97 ' service tcp destination eq www '(parent is # 102)>]
但是当我将其放入函数中时,它将无法正常工作。这是我第一次尝试使用函数,而且我知道自己做错了。
def cisco(filename):
parse = CiscoConfParse(filename)
Tcpsrv = parse.find_objects("service\stcp\sdestination\seq")
UDPSrv = parse.find_objects("service\sudp\sdestination\seq")
ObjectNetwork = parse.find_objects("^object\snetwork\s")
ObjectGroupSrv = parse.find_objects("^object-group\sservice")
ObjectGroupNetwork = parse.find_objects("^object-group\snetwork\s")
return Tcpsrv,UDPSrv,ObjectNetwork,ObjectGroupSrv,ObjectGroupNetwork
file = C:\\python\\mydata\\TestConfigFile.txt
cisco(file)
这没有任何输出。
>>> Tcpsrc
Traceback (most recent call last):
File "<input>",line 1,in <module>
NameError: name 'Tcpsrc' is not defined
我也尝试过将其放在下面
cisco("C:\\python\\mydata\\TestConfigFile.txt")
有人可以帮助我做错什么吗?
解决方法
这不会给出任何输出
>>> TCPSrc Traceback (most recent call last): File "",line 1,in NameError: name 'TCPSrc' is not defined
您尚未将返回值分配给任何内容。当您调用 cisco()
时,您需要将返回值分配给某些东西...请使用:
from ciscoconfparse import CiscoConfParse
def cisco(filename):
parse = CiscoConfParse(filename)
TCPSrv = parse.find_objects("service\stcp\sdestination\seq")
UDPSrv = parse.find_objects("service\sudp\sdestination\seq")
ObjectNetwork = parse.find_objects("^object\snetwork\s")
ObjectGroupSrv = parse.find_objects("^object-group\sservice")
ObjectGroupNetwork = parse.find_objects("^object-group\snetwork\s")
return TCPSrv,UDPSrv,ObjectNetwork,ObjectGroupSrv,ObjectGroupNetwork
values = cisco("C:\\python\\mydata\\TestConfigFile.txt")
TCPsrv = values[0]
UDPsrv = values[1]
# ... etc unpack the remaining values as illustrated above