我正在尝试编写一个脚本来对网络设备(路由器、交换机)执行验证检查。我正在使用telnet向设备发送命令。我存储命令的输出telnetobject.read\u直到(提示)输入到文件中,然后通过一次迭代一行对存储的输出运行一些验证检查。 有没有一种方法可以迭代输出而不将其存储在文件中?问题是read\u until选项给出了一个字符串形式的输出,而我尝试测试的设备的输出有一个表格形式的输出,但每行上没有一致的分隔符。你知道吗
这是一个例子: 导入telnetlib
tn=telnetlib.Telnet('ip address')
pwd='password'
uid='userid'
tn.read_until("login: ")
tn.write(uid + "\n")
tn.read_until("Password:")
tn.write(pwd +'\n')
tn.read_until(">",5)
tn.write('port statistics show' + '\n')
op1=tn.read_until("*>",5)
with open ('stattest-temp.txt','w') as stat:
stat.write(op1)
上面的代码是获取一个特定的输出并将其存储在一个文件中 下面的代码是迭代输出..问题是它是一个表格形式,以多个“\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\阅读直到就像一根巨大的绳子
with open ('stattest-temp.txt','r') as f:
for line_no,line in enumerate(f):
if line_no>5:
if '+---------------------------------+----------------+-----------+-----------+------------+\r' in line:
break
else:
x=line[:-1].split("|")
#print x
x1=x[1].strip()
x2=x[2].strip()
x3=x[3].strip()
x4=x[4].strip()
x5=x[5].strip()
if x4 =="YES":
print x1,x4
print 'Traffic loss observed'
elif x4=="No":
print "session recovered"
我正在寻找一种方法来完成上述代码的第2部分,而不必将输出写入文件
我认为,如果将输出字符串拆分为换行符,应该可以复制保存到文件和遍历行的效果。基本上在
for
循环之前设置:相关问题 更多 >
编程相关推荐