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.