形成一根琴弦以保持通缉

发布于 2025-01-28 12:42:42 字数 3069 浏览 2 评论 0原文

我对此代码有一个问题:

from netmiko import ConnectHandler
from re import search

lsite=[]

try:
    NetworkDevice = {
        "host" : "ip",
        "username" : "username",
        "password" : "mdp",
        "device_type" : "cisco_ios"
    }

    connect = ConnectHandler(**NetworkDevice)
    connect.enable()
    command = "sh cdp nei"
    result = connect.send_command(command).strip()


    with open(r".\blabla.txt","w") as filout:
                filout.write(result)

    with open(r"blabla.txt") as temp_f:
        datafile = temp_f.readlines()
    for line in datafile:
        if search("AP", line):
            output = (f"{line}")
            lsite.append(output.strip())
            print(lsite[-1])
            

            
except(IndexError):
    pass

而且我有此输出:

056_AP_GRANDE_TERRE.AMCMZ.LAN
Gig 0/12          158             T B I  AIR-CAP16 Gig 0
054_AP_GRANDE_TERRE.AMCMZ.LAN
Gig 0/11          132             T B I  AIR-CAP16 Gig 0
052_AP_GRANDE_TERRE.AMCMZ.LAN
Gig 0/10          174             T B I  AIR-CAP16 Gig 0
050_AP_GRANDE_TERRE.AMCMZ.LAN
Gig 0/9           155             T B I  AIR-CAP16 Gig 0

我想要此输出(也许必须在2个输出中拆分):

056_AP_GRANDE_TERRE.AMCMZ.LAN
054_AP_GRANDE_TERRE.AMCMZ.LAN
052_AP_GRANDE_TERRE.AMCMZ.LAN
050_AP_GRANDE_TERRE.AMCMZ.LAN    

Gig 0/12    
Gig 0/11    
Gig 0/10    
Gig 0/9

我尝试了多种方法,以split()strip( ),但我没有发现任何可行的东西。

print(lsite [-1])是因为仅打印lsite向我展示了所有附加列表的行:

['056_AP_GRANDE_TERRE.AMCMZ.LAN']
['056_AP_GRANDE_TERRE.AMCMZ.LAN', 'Gig 0/12          123             T B I  AIR-CAP16 Gig 0']
['056_AP_GRANDE_TERRE.AMCMZ.LAN', 'Gig 0/12          123             T B I  AIR-CAP16 Gig 0', '054_AP_GRANDE_TERRE.AMCMZ.LAN']
['056_AP_GRANDE_TERRE.AMCMZ.LAN', 'Gig 0/12          123             T B I  AIR-CAP16 Gig 0', '054_AP_GRANDE_TERRE.AMCMZ.LAN', 'Gig 0/11          154             T B I  AIR-CAP16 Gig 0', 
'052_AP_GRANDE_TERRE.AMCMZ.LAN']
['056_AP_GRANDE_TERRE.AMCMZ.LAN', 'Gig 0/12          123             T B I  AIR-CAP16 Gig 0', '054_AP_GRANDE_TERRE.AMCMZ.LAN', 'Gig 0/11          154             T B I  AIR-CAP16 Gig 0', 
'052_AP_GRANDE_TERRE.AMCMZ.LAN', 'Gig 0/10          142             T B I  AIR-CAP16 Gig 0']
['056_AP_GRANDE_TERRE.AMCMZ.LAN', 'Gig 0/12          123             T B I  AIR-CAP16 Gig 0', '054_AP_GRANDE_TERRE.AMCMZ.LAN', 'Gig 0/11          154             T B I  AIR-CAP16 Gig 0', 
'052_AP_GRANDE_TERRE.AMCMZ.LAN', 'Gig 0/10          142             T B I  AIR-CAP16 Gig 0', '050_AP_GRANDE_TERRE.AMCMZ.LAN']
['056_AP_GRANDE_TERRE.AMCMZ.LAN', 'Gig 0/12          123             T B I  AIR-CAP16 Gig 0', '054_AP_GRANDE_TERRE.AMCMZ.LAN', 'Gig 0/11          154             T B I  AIR-CAP16 Gig 0', 
'052_AP_GRANDE_TERRE.AMCMZ.LAN', 'Gig 0/10          142             T B I  AIR-CAP16 Gig 0', '050_AP_GRANDE_TERRE.AMCMZ.LAN', 'Gig 0/9           177             T B I  AIR-CAP16 Gig 0']  
['056_AP_GRANDE_TERRE.AMCMZ.LAN']

I have an issue with this code:

from netmiko import ConnectHandler
from re import search

lsite=[]

try:
    NetworkDevice = {
        "host" : "ip",
        "username" : "username",
        "password" : "mdp",
        "device_type" : "cisco_ios"
    }

    connect = ConnectHandler(**NetworkDevice)
    connect.enable()
    command = "sh cdp nei"
    result = connect.send_command(command).strip()


    with open(r".\blabla.txt","w") as filout:
                filout.write(result)

    with open(r"blabla.txt") as temp_f:
        datafile = temp_f.readlines()
    for line in datafile:
        if search("AP", line):
            output = (f"{line}")
            lsite.append(output.strip())
            print(lsite[-1])
            

            
except(IndexError):
    pass

And I have this output:

056_AP_GRANDE_TERRE.AMCMZ.LAN
Gig 0/12          158             T B I  AIR-CAP16 Gig 0
054_AP_GRANDE_TERRE.AMCMZ.LAN
Gig 0/11          132             T B I  AIR-CAP16 Gig 0
052_AP_GRANDE_TERRE.AMCMZ.LAN
Gig 0/10          174             T B I  AIR-CAP16 Gig 0
050_AP_GRANDE_TERRE.AMCMZ.LAN
Gig 0/9           155             T B I  AIR-CAP16 Gig 0

I would like this output (maybe have to split in 2 outputs):

056_AP_GRANDE_TERRE.AMCMZ.LAN
054_AP_GRANDE_TERRE.AMCMZ.LAN
052_AP_GRANDE_TERRE.AMCMZ.LAN
050_AP_GRANDE_TERRE.AMCMZ.LAN    

Gig 0/12    
Gig 0/11    
Gig 0/10    
Gig 0/9

I tried many ways with split() or strip() but I found nothing which works.

The print(lsite[-1]) is because only printing lsite shows me every lines who append my list like:

['056_AP_GRANDE_TERRE.AMCMZ.LAN']
['056_AP_GRANDE_TERRE.AMCMZ.LAN', 'Gig 0/12          123             T B I  AIR-CAP16 Gig 0']
['056_AP_GRANDE_TERRE.AMCMZ.LAN', 'Gig 0/12          123             T B I  AIR-CAP16 Gig 0', '054_AP_GRANDE_TERRE.AMCMZ.LAN']
['056_AP_GRANDE_TERRE.AMCMZ.LAN', 'Gig 0/12          123             T B I  AIR-CAP16 Gig 0', '054_AP_GRANDE_TERRE.AMCMZ.LAN', 'Gig 0/11          154             T B I  AIR-CAP16 Gig 0', 
'052_AP_GRANDE_TERRE.AMCMZ.LAN']
['056_AP_GRANDE_TERRE.AMCMZ.LAN', 'Gig 0/12          123             T B I  AIR-CAP16 Gig 0', '054_AP_GRANDE_TERRE.AMCMZ.LAN', 'Gig 0/11          154             T B I  AIR-CAP16 Gig 0', 
'052_AP_GRANDE_TERRE.AMCMZ.LAN', 'Gig 0/10          142             T B I  AIR-CAP16 Gig 0']
['056_AP_GRANDE_TERRE.AMCMZ.LAN', 'Gig 0/12          123             T B I  AIR-CAP16 Gig 0', '054_AP_GRANDE_TERRE.AMCMZ.LAN', 'Gig 0/11          154             T B I  AIR-CAP16 Gig 0', 
'052_AP_GRANDE_TERRE.AMCMZ.LAN', 'Gig 0/10          142             T B I  AIR-CAP16 Gig 0', '050_AP_GRANDE_TERRE.AMCMZ.LAN']
['056_AP_GRANDE_TERRE.AMCMZ.LAN', 'Gig 0/12          123             T B I  AIR-CAP16 Gig 0', '054_AP_GRANDE_TERRE.AMCMZ.LAN', 'Gig 0/11          154             T B I  AIR-CAP16 Gig 0', 
'052_AP_GRANDE_TERRE.AMCMZ.LAN', 'Gig 0/10          142             T B I  AIR-CAP16 Gig 0', '050_AP_GRANDE_TERRE.AMCMZ.LAN', 'Gig 0/9           177             T B I  AIR-CAP16 Gig 0']  
['056_AP_GRANDE_TERRE.AMCMZ.LAN']

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

岁月无声 2025-02-04 12:42:43

我希望这就是您所需要的。

list_of_lists = [['056_AP_GRANDE_TERRE.AMCMZ.LAN'],
     ['056_AP_GRANDE_TERRE.AMCMZ.LAN', 'Gig 0/12          123             T B I  AIR-CAP16 Gig 0'],
     ['056_AP_GRANDE_TERRE.AMCMZ.LAN', 'Gig 0/12          123             T B I  AIR-CAP16 Gig 0',
      '054_AP_GRANDE_TERRE.AMCMZ.LAN'],
     ['056_AP_GRANDE_TERRE.AMCMZ.LAN', 'Gig 0/12          123             T B I  AIR-CAP16 Gig 0',
      '054_AP_GRANDE_TERRE.AMCMZ.LAN', 'Gig 0/11          154             T B I  AIR-CAP16 Gig 0',
      '052_AP_GRANDE_TERRE.AMCMZ.LAN'],
     ['056_AP_GRANDE_TERRE.AMCMZ.LAN', 'Gig 0/12          123             T B I  AIR-CAP16 Gig 0',
      '054_AP_GRANDE_TERRE.AMCMZ.LAN', 'Gig 0/11          154             T B I  AIR-CAP16 Gig 0',
      '052_AP_GRANDE_TERRE.AMCMZ.LAN', 'Gig 0/10          142             T B I  AIR-CAP16 Gig 0'],
     ['056_AP_GRANDE_TERRE.AMCMZ.LAN', 'Gig 0/12          123             T B I  AIR-CAP16 Gig 0',
      '054_AP_GRANDE_TERRE.AMCMZ.LAN', 'Gig 0/11          154             T B I  AIR-CAP16 Gig 0',
      '052_AP_GRANDE_TERRE.AMCMZ.LAN', 'Gig 0/10          142             T B I  AIR-CAP16 Gig 0',
      '050_AP_GRANDE_TERRE.AMCMZ.LAN'],
     ['056_AP_GRANDE_TERRE.AMCMZ.LAN', 'Gig 0/12          123             T B I  AIR-CAP16 Gig 0',
      '054_AP_GRANDE_TERRE.AMCMZ.LAN', 'Gig 0/11          154             T B I  AIR-CAP16 Gig 0',
      '052_AP_GRANDE_TERRE.AMCMZ.LAN', 'Gig 0/10          142             T B I  AIR-CAP16 Gig 0',
      '050_AP_GRANDE_TERRE.AMCMZ.LAN', 'Gig 0/9           177             T B I  AIR-CAP16 Gig 0'],
     ['056_AP_GRANDE_TERRE.AMCMZ.LAN']]

lans = set()
gigs = set()
for outer in list_of_lists:
    for inner in outer:
        if ".LAN" in inner:
            lans.add(inner)
        else:
            gigs.add(inner.split("  ")[0])

for lan in lans:
    print(lan)

for gig in gigs:
    print(gig)

输出:

050_AP_GRANDE_TERRE.AMCMZ.LAN
056_AP_GRANDE_TERRE.AMCMZ.LAN
052_AP_GRANDE_TERRE.AMCMZ.LAN
054_AP_GRANDE_TERRE.AMCMZ.LAN
Gig 0/11
Gig 0/12
Gig 0/9
Gig 0/10

I hoper this is what you need.

list_of_lists = [['056_AP_GRANDE_TERRE.AMCMZ.LAN'],
     ['056_AP_GRANDE_TERRE.AMCMZ.LAN', 'Gig 0/12          123             T B I  AIR-CAP16 Gig 0'],
     ['056_AP_GRANDE_TERRE.AMCMZ.LAN', 'Gig 0/12          123             T B I  AIR-CAP16 Gig 0',
      '054_AP_GRANDE_TERRE.AMCMZ.LAN'],
     ['056_AP_GRANDE_TERRE.AMCMZ.LAN', 'Gig 0/12          123             T B I  AIR-CAP16 Gig 0',
      '054_AP_GRANDE_TERRE.AMCMZ.LAN', 'Gig 0/11          154             T B I  AIR-CAP16 Gig 0',
      '052_AP_GRANDE_TERRE.AMCMZ.LAN'],
     ['056_AP_GRANDE_TERRE.AMCMZ.LAN', 'Gig 0/12          123             T B I  AIR-CAP16 Gig 0',
      '054_AP_GRANDE_TERRE.AMCMZ.LAN', 'Gig 0/11          154             T B I  AIR-CAP16 Gig 0',
      '052_AP_GRANDE_TERRE.AMCMZ.LAN', 'Gig 0/10          142             T B I  AIR-CAP16 Gig 0'],
     ['056_AP_GRANDE_TERRE.AMCMZ.LAN', 'Gig 0/12          123             T B I  AIR-CAP16 Gig 0',
      '054_AP_GRANDE_TERRE.AMCMZ.LAN', 'Gig 0/11          154             T B I  AIR-CAP16 Gig 0',
      '052_AP_GRANDE_TERRE.AMCMZ.LAN', 'Gig 0/10          142             T B I  AIR-CAP16 Gig 0',
      '050_AP_GRANDE_TERRE.AMCMZ.LAN'],
     ['056_AP_GRANDE_TERRE.AMCMZ.LAN', 'Gig 0/12          123             T B I  AIR-CAP16 Gig 0',
      '054_AP_GRANDE_TERRE.AMCMZ.LAN', 'Gig 0/11          154             T B I  AIR-CAP16 Gig 0',
      '052_AP_GRANDE_TERRE.AMCMZ.LAN', 'Gig 0/10          142             T B I  AIR-CAP16 Gig 0',
      '050_AP_GRANDE_TERRE.AMCMZ.LAN', 'Gig 0/9           177             T B I  AIR-CAP16 Gig 0'],
     ['056_AP_GRANDE_TERRE.AMCMZ.LAN']]

lans = set()
gigs = set()
for outer in list_of_lists:
    for inner in outer:
        if ".LAN" in inner:
            lans.add(inner)
        else:
            gigs.add(inner.split("  ")[0])

for lan in lans:
    print(lan)

for gig in gigs:
    print(gig)

Output:

050_AP_GRANDE_TERRE.AMCMZ.LAN
056_AP_GRANDE_TERRE.AMCMZ.LAN
052_AP_GRANDE_TERRE.AMCMZ.LAN
054_AP_GRANDE_TERRE.AMCMZ.LAN
Gig 0/11
Gig 0/12
Gig 0/9
Gig 0/10
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文