Impossible d'effacer le tampon pexpect dans python3.X


9

J'utilise le module Pexpect pour me connecter au serveur distant. Je peux envoyer et récupérer avec succès la réponse. J'essaie d'effacer un tampon en m'attendant à quelque chose de indésirable et en supposant qu'il effacera le tampon, mais en réalité, il n'efface pas le tampon.

Voici mon exemple de code

import pexpect
obj = pexpect.spawn("telnet 172.16.250.250", maxread=8192)

obj.sendline("")
result = obj.expect(expected, timeout=3) --> getting output here `OUTPUT 1`
obj.sendline("1")
time.sleep(3)
try:
    obj.expect("Asdfgdsad", timeout=2)  --> I am expecting to clear buffer here but it did not

except pexpect.TIMEOUT:
    pass
print("buffer is", obj.buffer) . --> This is printing output `OUTPUT 1` as I have meniotned

Je fais quelque chose de mal ici ?? J'utilise python3.7. Si je me souviens bien, cela fonctionnait correctement en python2.X

Réponses:


3

Vous pouvez effacer le tampon pexpects en le lisant explicitement, IIRC.

flush = ''
while not obj.expect(r'.+', timeout=5):
    flush += obj.match.group(0)
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.