Не вдається очистити пекспектний буфер у 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

Відповіді:


3

Ви можете очистити буфер пекспектів, чітко прочитавши його, IIRC.

flush = ''
while not obj.expect(r'.+', timeout=5):
    flush += obj.match.group(0)
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.