Không thể xóa bộ đệm khai thác trong python3.X


9

Tôi đang sử dụng mô-đun PExect để kết nối với máy chủ từ xa. Tôi có thể gửi và lấy phản hồi thành công. Tôi đang cố gắng xóa bộ đệm bằng cách mong đợi một cái gì đó rác và giả sử nó sẽ xóa bộ đệm nhưng thực sự nó không xóa bộ đệm.

Dưới đây là mã mẫu của tôi

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

Tôi đang làm gì đó sai ở đây ?? Tôi đang sử dụng python3.7. Nếu tôi nhớ chính xác thì nó đã hoạt động chính xác trong python2.X

Câu trả lời:


3

Bạn có thể xóa bộ đệm khai thác bằng cách đọc rõ ràng, IIRC.

flush = ''
while not obj.expect(r'.+', timeout=5):
    flush += obj.match.group(0)
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.