如何解决使用 pexpect 进行交互时的双字符
我正在使用 Pexpect 进行测试。
w1 = pexpect.spawn('telnet XXXX')
# or
w1 = pxssh.pxssh()
# both with
w1.logfile_read =sys.stdout
它运行良好;但是,如果我在某个时候这样做:
w1.interact()
然后尝试在屏幕上写一些东西,我得到了双字符。
例如,如果我输入:rmdir
,它将是 rrmmddiirr
。
我怎么能有一个字符?
解决方法
interact()
会为你处理回声,所以你需要这样做:
w1.logfile_read = None
w1.interact()
根据 pexpect doc:
-
interact(escape_character='\x1d',input_filter=None,output_filter=None)
这将子进程的控制权交给交互式用户(键盘上的人)。击键发送到子进程,并打印子进程的 stdout 和 stderr 输出。这只是将子 stdout 和子 stderr 回显到真正的 stdout,并将真正的 stdin 回显到子 stdin。 [...]
如果指定了日志文件,那么在交互模式下从子进程发送和接收的数据将复制到给定的日志中。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。