Pexpect-Puffer in python3.X kann nicht gelöscht werden

9

Ich verwende das Pexpect-Modul, um eine Verbindung zum Remote-Server herzustellen. Ich kann erfolgreich eine Antwort senden und abrufen. Ich versuche, einen Puffer zu löschen, indem ich etwas Junk erwarte und davon ausgehe, dass es den Puffer löscht, aber tatsächlich löscht es den Puffer nicht.

Unten ist mein Beispielcode

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

Ich mache hier etwas falsch? Ich benutze Python3.7. Wenn ich mich richtig erinnere Es funktionierte korrekt in python2.X

Nitesh
quelle

Antworten:

3

Sie können den pexpects-Puffer löschen, indem Sie ihn explizit lesen (IIRC).

flush = ''
while not obj.expect(r'.+', timeout=5):
    flush += obj.match.group(0)
Aiyion.Prime
quelle