Разбор таблицы - PullRequest
       10

Разбор таблицы

0 голосов
/ 13 марта 2019

Я пытаюсь разобрать таблицу с коммутатора. Если состояние «вверх», продолжайте выполнение 1000 итераций, иначе остановите тест. Ниже приведена таблица, которую мне нужно проанализировать, и вывод "crt.Screen.Send (" show "+ chr (13))" ниже в коде.

OS2(config-iap)# show 

IAP Summary Table

IAP         IAP     TX/RX Channel(s)                      Channel  WiFi            Cell      TX      RX                                                                
Name  State Type   Chains Primary + Bonds                 Setting  Mode   Antenna  Size     Power Threshold  Stations
----- ----- ------------- ------------------------------- ------- ------- -------- ------- ------ ---------  --------
iap1    up  .11abgnac 3x3   6                             auto     bgn    int-omni max      20dBm   -90dBm         0 
iap2    up  .11anac   3x3 153                             auto      anac  int-omni max      20dBm   -90dBm         0 
                                                                                                             ======== 
Totals:                                                                                                            0  

OS2(config-iap)#

Ниже приведен весь код Python, который я использую для циклического переключения кода страны на 1000 итераций и проверки, находятся ли эти IAP1 / 2 в состоянии «вверх» или «вниз». Если «вверх», я бы хотел, чтобы программа продолжала выполнять итерации, в противном случае (если «вниз»), чтобы остановить или остановить тест. Приведенный ниже код работает без оператора for. Однако мне нужно визуально увидеть, когда состояние переходит в неактивное состояние, и вручную остановить тест.

import time

output=""

def Main():
    state="up"
    crt.Screen.Send(chr(13))
    crt.Screen.WaitForString("# ")
    crt.Screen.Send("config" + chr(13))
    crt.Screen.WaitForString("# ")
    crt.Screen.Send("interface iap" + chr(13))
    crt.Screen.WaitForString("# ")
    virt = 0
    while virt < 1000: #1024 being the max number of VLANs
        virt += 1
        crt.Screen.Send("!" + str(virt) + chr(13))
        crt.Screen.WaitForString("# ")
        crt.Screen.Send("country-code us" + chr(13))
        crt.Screen.WaitForString("(config-iap)# ")
        time.sleep(3)
        crt.Screen.Send("show date-time" + chr(13))
        crt.Screen.WaitForString("# ")
        crt.Screen.Send("show" + chr(13))
        output = crt.Screen.recv(2000)
        output=state.decode('utf-8')
        ll=state.split(chr(13))
        for item in ll:
            if "iap" in ll:
                mm=item.split()
                if mm[1]==state:
                    continue
                else:
                    break
        #crt.Screen.WaitForString("# ")
        crt.Screen.Send("country-code-reset" + chr(13))
        crt.Screen.WaitForString("(config-iap)# ")
        crt.Screen.Send("show" + chr(13))
        crt.Screen.WaitForString("# ")
        time.sleep(5)
    crt.Screen.Send("exit" + chr(13))
    crt.Screen.WaitForString("# ")
        #time.sleep(1)
Main()

Это ошибка, которую я получаю:

AttributeError Error: 'SecureCRT.Screen' object has no attribute 'recv' File: /Users/Documents/SecureCRT_Scripts/country-code_1.py Line: 24 state = crt.Screen.recv(2000) 

1 Ответ

1 голос
/ 13 марта 2019

Я думаю, что в вашем коде есть опечатка,

if "iap" in ll:

должно быть,

if "iap" in item:
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...