2014-09-10 2 views
0

Я пишу сценарий, который узнает, какую модель маршрутизатора и какую версию IOS использует маршрутизатор Cisco. Я пишу его на Python, используя SecureCRT api. Сценарий отправляет команду show version, которая отображает информацию о маршрутизаторе, включая необходимую мне информацию. Затем я использую SecureCRT api, чтобы вытащить весь текст из экрана приложения, а затем перебираю текст и использую инструкции if для сопоставления моделей маршрутизаторов, чтобы увидеть, какой из них он есть. Каждый раз, когда я запускаю скрипт, он запускается и не выдает ошибку, но файл «new.txt» пуст.SecureCRT python scripting

# $language = "python" 
# $interface = "1.0" 

crt.Screen.Synchronous = True 
ModelIOSScreen = "" 

def Main(): 
    ModelIOS() 

def ModelIOS(): 
    crt.Screen.Send("show version" + chr(13)) 
    crt.Screen.WaitForString(">") 
    Screen = crt.Screen.Get(-1, 1, 50, 70) 
    ModelIOSScreen = str(Screen.split(" ", -1)) 

    RouterModel = "" 

    for word in ModelIOSScreen: 
     if word == "2811": 
      RouterModel = "2811" 
     elif word == "2801": 
      RouterModel = "2801" 
     elif word == "CISCO2911/K9": 
      RouterModel = "2911" 

    file = open("new.txt", "w") 
    file.write(ModelIOSScreen) 
+0

Как выглядит 'ModelIOSScreen' и что делает if/elif? –

+0

Это конец файла? Если это так, вы никогда не называете Main(), поэтому ничто никогда не будет выполнено. –

+0

@SirDigbyChickenCaesar, тогда не было бы пустого файла или нет. –

ответ

1

Я нахожусь на своем телефоне и, вероятно, могу написать лучший ответ, но я собираюсь ложиться спать. Вы никогда не закрываете файл, который вы открываете. Лучше использовать следующие работы.

with open(file, "w") as fp: 
    fp.write(variable)