Python3.X에서 pexpect 버퍼를 지울 수 없습니다


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에서 올바르게 작동했다

답변:


3

IIRC를 명시 적으로 읽어 pexpects 버퍼를 지울 수 있습니다.

flush = ''
while not obj.expect(r'.+', timeout=5):
    flush += obj.match.group(0)
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.