2014-09-10 277 views
0

我正在編寫一個腳本,它將查找哪些路由器型號和Cisco路由器正在使用的IOS版本。我正在使用SecureCRT API在Python中編寫它。腳本發送show version命令,顯示有關路由器的信息,包括我需要的信息。然後我使用SecureCRT api從應用程序屏幕提取所有文本,然後遍歷文本並使用if語句來匹配路由器模型以查看它是哪一個。每次我運行它運行的腳本並沒有錯誤,但「new.txt」文件是空白的。SecureCRT python腳本

# $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在做什麼? – 2014-09-10 22:15:46

+0

這是文件的結尾嗎?如果是這樣,你永遠不會調用Main(),因此沒有任何事情會被執行。 – 2014-09-10 22:24:18

+0

@SirDigbyChickenCaesar,那麼就沒有文件是空的或不是。 – 2014-09-10 22:25:28

回答

1

我在我的手機上,可能會寫一個更好的答案,但我即將上牀睡覺。你永遠不會關閉你打開的文件。使用以下工作更好。

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