我有一个脚本telnet到网络交换机并执行命令。它工作正常但我需要它停止并显示错误消息,如果任何命令失败或网络给予减弱或某事。
以下是代码:
import sys
import telnetlib
HOST = "10.10.10.1"
user = "Test"
password = "TestPW"
tn = telnetlib.Telnet(HOST)
tn.read_until("username: ")
tn.write(user + "\n")
tn.read_until("password: ")
tn.write(password + "\n")
n, match, previous_text = tn.expect([r'Login incorrect', r'\$'], 1)
if n == 0:
print "Invalid Credentials"
tn.close()
else:
tn.write("Term len 0\n")
#Reads data from commands.txt file and executes it line by line
with open("commands.txt") as commands:
singlecommand = commands.read()
tn.write(singlecommand)
print singlecommand
#Need exception/error checking to catch fail commands or warnings.
tn.write("exit\n")
tn.write("y\n")
print tn.read_all()
tn.close()
我希望脚本在失败命令或来自CLI的警告之后停止执行更多命令,这可能是错误的。它已经具有print函数,因此它应该显示错误消息和失败的命令。
以下是失败命令的示例:
%在'^'标记处检测到无效输入。
以下是一条示例警告消息:
%警告:
答案 0 :(得分:0)
您可以使用http://yahoo.com语句。
它们与Python文档的Try/Except部分相关。
示例:强>
try:
wrong_sum = "a" + 2
except ValueError:
print "You got a Value Error"
else:
break
答案 1 :(得分:0)
您可以根据失败命令中出现的关键字提取消息,然后引发异常 例如:
try:
if '%Warning' == message[:8]:
raise Exception('Test')
except Exception:
print message