我试图获取bgp_摘要字符串中每行的第一项,并创建一个新的列表。为此,我使用下面的代码,但出现“列表索引超出范围”错误。我相信我所指的列表索引没有超出范围,但不确定为什么会发生这种错误。 如果有人能帮忙,我将不胜感激
bgp_summary = """
10.0.13.213 65510 658 86 0 0 2d 3:43:06 Establ
172.46.42.134 65513 819 7 0 11 2d 3:50:49 Establ
172.57.13.1 65501 15427 52 0 0 0d 2:26:01 Establ
172.57.13.249 65513 13449 2517 0 0 2d 3:50:21 Establ
172.57.13.250 65513 134 2515 0 0 4d 3:50:21 Establ
172.57.13.252 65513 46 142 0 0 3:50:32 Establ
"""
bgp_peers_list_raw = []
bgp_peers_list_refined = []
bgp_peers_list_raw = bgp_summary.splitlines()
n=0
for n in range (len(bgp_peers_list_raw)):
list_raw1 = []
list_raw1 = bgp_peers_list_raw[n].split()
bgp_peers_list_refined.append(list_raw1[0])
bgp_peers_list_refined.append(list_raw1[0])
IndexError: list index out of range
你的一些行是空的。如果您放弃以下内容:
代码:
它会很好用的
测试代码:
结果:
这是因为
bgp_summary
有一些空行最简单、最直接的解决方案是将
bgp_summary
转换为:致:
虽然不是很好看,但可以解决你的问题
一个更复杂的解决方案是对for循环进行一个小的修改,使
bgp_summary
保持不变不要像这样检查每一行:
您可以在开始和结束时排除空的,如下所示:
相关问题 更多 >
编程相关推荐