Não foi possível limpar o buffer do pexpect no python3.X

9

Estou usando o módulo Pexpect para conectar ao servidor remoto. Posso enviar e recuperar respostas com sucesso. Estou tentando limpar um buffer, esperando algo lixo e supondo que ele irá limpar o buffer, mas na verdade não está limpando o buffer.

Abaixo está o meu código de exemplo

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

Estou fazendo algo errado aqui ?? Estou usando python3.7. Se bem me lembro, estava funcionando corretamente no python2.X

Nitesh
fonte

Respostas:

3

Você pode limpar o buffer de expressões lendo-o explicitamente, IIRC.

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