Невозможно очистить буфер pexpect в python3.X

9

Я использую модуль Pexpect для подключения к удаленному серверу. Я могу успешно отправить и получить ответ. Я пытаюсь очистить буфер, ожидая чего-то ненужного и предполагая, что он очистит буфер, но на самом деле он не очищает буфер.

Ниже приведен мой пример кода

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

Я тут что то не так делаю ?? Я использую python3.7. Если я правильно помню, он работал правильно в Python2.X

Nitesh
источник

Ответы:

3

Вы можете очистить буфер pexpect, явно прочитав его, IIRC.

flush = ''
while not obj.expect(r'.+', timeout=5):
    flush += obj.match.group(0)
Aiyion.Prime
источник