2010-08-12 7 views
1

Je suit le code python:Comment lire uniquement dernier tampon de commande 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") 

Mais comment puis-je lire la mémoire tampon uniquement de commande « show de départ »? Si j'essaie de lire read_all (très) ou read_all(), j'obtiens aussi toutes les sorties précédentes. Im confus parce qu'il semble que je devrais analyser la chaîne sur mon propre wrrr :(Peut-être im mal?

+0

S'il vous plaît préciser votre question. que voulez-vous dire par "le tampon seulement de' show start' "? Vous avez envoyé ce bit de chaîne Dans tous les cas, je ne connais pas un moyen de faire que telnetLib vider ses tampons sans vous les renvoyer –

+0

Dans ce cas, ne pouvez-vous pas 'read_all()' et supprimer les cinq premières lignes? – katrielalex

Répondre

4

Essayez d'utiliser ts.read_until("") avant la commande dont la sortie que vous voulez saisir

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")`