在我的代码中有两个循环,一个主for循环,它将从ip地址列表中读取一些ip地址,第二个循环是我发送一些命令到这些ip并获得一些输出(必需),我发送两个命令并从这些commands.Here获得两个输出首先我使用split(,)方法分离这些输出,并使用append方法将其附加到列表中。我正在获得接近我所需输出的输出,但不精确或预期output.Please帮助我获得该输出。
在这里,我使用Python列表相关的方法来获取输出。
cli_commands = ['sh version | i p n|Cisco IOS','sh inventory']
for k in range(len(cli_commands)):
net_connect.send_command(cli_commands[k])
vall=net_connect.send_command(cli_commands[k])
#myList2.extend(vall.strip().split(","))
#myList2.append(vall.split(","))
myList2.append(vall.strip().split(","))实际结果:
[['Cisco IOS Software', ' C2960S Software (C2960S-UNIVERSALK9-M)', ' Version 15.0(2)SE11', ' RELEASE SOFTWARE (fc3)'], ['NAME: "1"', ' DESCR: "WS-C2960S-24TS-L"\nPID: WS-C2960S-24TS-L ', ' VID: V02 ', ' SN: FOC1452X5C5'], ['Cisco IOS Software', ' C2960S Software (C2960S-UNIVERSALK9-M)', ' Version 15.0(2)SE11', ' RELEASE SOFTWARE (fc3)'], ['NAME: "1"', ' DESCR: "WS-C2960S-48TS-L"\nPID: WS-C2960S-48TS-L ', ' VID: V02 ', ' SN: FOC1502Z4G1']]在这里,外部环路将获得ip地址并转到内部forloop,在那里它将逐个执行两个命令,并且第一个命令将来自第一个命令,即'Cisco IOS软件‘、’C2960S软件(C2960S-UNIVERSALK9-M)‘、’版本15.0(2)SE11‘、’发布软件(fc3)‘
['NAME: "1"', ' DESCR: "WS-C2960S-24TS-L"\nPID: WS-C2960S-24TS-L ', ' VID: V02 ', ' SN: FOC1452X5C5']将来自循环中的其他命令。
期望:
[['Cisco IOS Software', ' C2960S Software (C2960S-UNIVERSALK9-M)', ' Version 15.0(2)SE11', ' RELEASE SOFTWARE (fc3)','NAME: "1"', ' DESCR: "WS-C2960S-24TS-L"\nPID: WS-C2960S-24TS-L ', ' VID: V02 ', ' SN: FOC1452X5C5'], ['Cisco IOS Software', ' C2960S Software (C2960S-UNIVERSALK9-M)', ' Version 15.0(2)SE11', ' RELEASE SOFTWARE (fc3)','NAME: "1"', ' DESCR: "WS-C2960S-48TS-L"\nPID: WS-C2960S-48TS-L ', ' VID: V02 ', ' SN: FOC1502Z4G1']]发布于 2019-07-17 14:52:58
尝试将以下代码作为最后一行:
print([myList2[i] + myList2[i + 1] for i in range(0, len(myList2), 2)])输出:
[['Cisco IOS Software', ' C2960S Software (C2960S-UNIVERSALK9-M)', ' Version 15.0(2)SE11', ' RELEASE SOFTWARE (fc3)','NAME: "1"', ' DESCR: "WS-C2960S-24TS-L"\nPID: WS-C2960S-24TS-L ', ' VID: V02 ', ' SN: FOC1452X5C5'], ['Cisco IOS Software', ' C2960S Software (C2960S-UNIVERSALK9-M)', ' Version 15.0(2)SE11', ' RELEASE SOFTWARE (fc3)','NAME: "1"', ' DESCR: "WS-C2960S-48TS-L"\nPID: WS-C2960S-48TS-L ', ' VID: V02 ', ' SN: FOC1502Z4G1']]发布于 2019-07-17 14:55:17
你可以这样做
[x + y for x, y in zip(myList2[0::2], myList2[1::2])]对于给定的示例,如下所示:
In [15]: myList2 = [['Cisco IOS Software', ' C2960S Software (C2960S-UNIVERSALK9-M)', ' Version 15.0(2)SE11', ' RELEASE
...: SOFTWARE (fc3)'], ['NAME: "1"', ' DESCR: "WS-C2960S-24TS-L"\nPID: WS-C2960S-24TS-L ', ' VID: V02 ', ' SN: FOC
...: 1452X5C5'], ['Cisco IOS Software', ' C2960S Software (C2960S-UNIVERSALK9-M)', ' Version 15.0(2)SE11', ' RELEASE
...: SOFTWARE (fc3)'], ['NAME: "1"', ' DESCR: "WS-C2960S-48TS-L"\nPID: WS-C2960S-48TS-L ', ' VID: V02 ', ' SN: FO
...: C1502Z4G1']]
In [16]: [x + y for x, y in zip(myList2[0::2], myList2[1::2])]
Out[16]:
[['Cisco IOS Software',
' C2960S Software (C2960S-UNIVERSALK9-M)',
' Version 15.0(2)SE11',
' RELEASE SOFTWARE (fc3)',
'NAME: "1"',
' DESCR: "WS-C2960S-24TS-L"\nPID: WS-C2960S-24TS-L ',
' VID: V02 ',
' SN: FOC1452X5C5'],
['Cisco IOS Software',
' C2960S Software (C2960S-UNIVERSALK9-M)',
' Version 15.0(2)SE11',
' RELEASE SOFTWARE (fc3)',
'NAME: "1"',
' DESCR: "WS-C2960S-48TS-L"\nPID: WS-C2960S-48TS-L ',
' VID: V02 ',
' SN: FOC1502Z4G1']]https://stackoverflow.com/questions/57070030
复制相似问题