2010-08-12 145 views
1

我有以下Python代碼只有最後一個緩衝區:如何讀取telnetlib命令

import telnetlib 
ts = telnetlib.Telnet('192.168.0.2') 
ts.set_debuglevel(10) 
ts.read_until("assword:", 5) 
ts.write("xxxxx\n") 
ts.write("enable\n") 
ts.read_until("assword:", 5) 
ts.write("xxxxx\n") 
ts.write("term len 0\n") 
ts.write("show start\n") 

但我怎麼只能讀取來自「節目開始」命令緩衝區? 如果我嘗試read_(非常)渴望或read_all()我也得到所有以前的輸出。 林困惑,因爲它看起來像我應該對我自己wrrr解析字符串:( 也許我錯了嗎?

+0

請澄清你的問題,其輸出的命令之前使用ts.read_until("")。 你是什麼意思「緩衝區只從'show start'」?你發送了那一串字符串 在任何情況下,我不知道如何讓telnetLib刷新緩衝區而不返回給你 – 2010-08-12 14:17:47

+0

在這種情況下,你不能只是'read_all()'並且去掉前五行左右? – katrielalex 2010-08-12 15:13:38

回答

4

嘗試你想抓住

import telnetlib 
ts = telnetlib.Telnet('192.168.0.2') 
ts.set_debuglevel(10) 
ts.read_until("assword:", 5) 
ts.write("xxxxx\n") 
ts.write("enable\n") 
ts.read_until("assword:", 5) 
ts.write("xxxxx\n") 
ts.read_until("") #Add this line 
ts.write("term len 0\n") 
ts.write("show start\n")`