我读过一些相似的例子,但我还没有达到理解答案的水平。我想获取列表输出并将每个接口作为一个单独的行(aka list I write to a csv)
来编写。我需要拆分关键字“interface Vlan*”上的初始返回列表
我想将关键字接口vlan*
上返回的列表vlanlist拆分为单独的列表
from ciscoconfparse import CiscoConfParse
import os
for filename in os.listdir():
if filename.endswith(".cfg"):
p = CiscoConfParse(filename)
vlanlist=(p.find_all_children('^interface Vlan'))
vlanlist.insert(0,filename)
print(vlanlist)
这是一行输出。我需要将关键字"interface vlanxxx"
上的列表拆分为单独的行
[ 'interface Vlan1', ' no ip address', ' shutdown', 'interface Vlan2003', ' description XXXXXX', ' ip address 10.224.6.130 255.255.255.224', ' no ip redirects', ' no ip unreachables', ' no ip proxy-arp', ' load-interval 60', ' arp timeout 420']
所需输出(这可能有2-20个不同的接口,我想根据配置文件拆分)
['interface Vlan1' ' no ip address', ' shutdown']
['interface Vlan2003', ' description XXXXXX', ' ip address 10.224.6.130 255.255.255.224', ' no ip redirects', ' no ip unreachables', ' no ip proxy-arp', ' load-interval 60', ' arp timeout 420']
这里有一个与单个测试用例高度耦合的解决方案。如果完整的数据集不能代表您的单个测试用例,那么您必须通过更多的测试来改进它。你知道吗
编辑:
... 你已经改变了输入和输出。你知道吗
快速而直接的解决方案。检查列表中的
interface Vlan
项,如果是,它会创建一个新列表,否则会在旧列表上附加一些.strip()
项。你知道吗在附加文件名之前,可以进一步分隔返回的
vlanlist
:对第二个列表理解的解释:
如果您不喜欢索引方法,可以尝试
zip
:相关问题 更多 >
编程相关推荐