python telnetlib清除缓冲区

时间:2016-06-13 20:41:03

标签: python python-2.7

我有这个telnet到我的路由器的脚本。我想使用这个脚本来保存各种show命令输出。然而,似乎一旦我将第一个命令写入缓冲区,我就无法清除它。例如,在脚本中它编写命令" show isis adj"到缓冲区然后在脚本中我想运行另一个show命令并保存该输出。这里的问题似乎是缓冲区只是保存了第一个命令" show isis adj"两次?如何清除此缓冲区以便运行多个show命令?

此外,我确实阅读了其他一些堆栈溢出帖子,并使用" Telnet.read_until(期望[,超时])"然而,我尝试了一些,但我仍然无法让它工作。

import telnetlib
import datetime


now = datetime.datetime.now()

host = "x.x.x.x" # your router ip
username = "root" # the username
password = "root"


print("""#######################
  CONNECTING TO DEVICE""")

tn = telnetlib.Telnet(host)
tn.read_until("Username:")
tn.write(username+"\n")
tn.read_until("Password:")
tn.write(password+"\n")
tn.write("terminal length 0"+"\n")


print("""#######################
  SHOWING ISIS ADJ""")

tn.write("show isis adjacency"+"\n")
tn.write("exit"+"\n")
output1 = tn.read_until("cmd")
print(output1)


print("""#######################
  SHOWING BGP SESSIONS""")

tn.write("show bgp sessions"+"\n")
tn.write("exit"+"\n")
output2 = tn.read_until("cmd")
print(output1)

1 个答案:

答案 0 :(得分:0)

您两次打印output1!修复它并使用output2

....
print("""#######################
  SHOWING BGP SESSIONS""")

tn.write("show bgp sessions"+"\n")
tn.write("exit"+"\n")
output2 = tn.read_until("cmd")
print(output2)