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)
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.