Python 使用pexpect执行交互()时使用双字符

Python 使用pexpect执行交互()时使用双字符,python,pexpect,Python,Pexpect,我正在使用Pexpect进行测试 w1 = pexpect.spawn('telnet XXXX') # or w1 = pxssh.pxssh() # both with w1.logfile_read =sys.stdout 它运行良好;但是,如果我在某个时候这样做: w1.interact() 然后试着在屏幕上写些东西,我得到了两个字符。 例如,如果我键入:rmdir它将是rrmmddirr 我怎样才能拥有一个字符?interact()将负责为您回音,因此您需要这样做: w1.lo

我正在使用Pexpect进行测试

w1 = pexpect.spawn('telnet XXXX')
# or 
w1 = pxssh.pxssh()
# both with 
w1.logfile_read =sys.stdout
它运行良好;但是,如果我在某个时候这样做:

w1.interact()
然后试着在屏幕上写些东西,我得到了两个字符。 例如,如果我键入:
rmdir
它将是
rrmmddirr

我怎样才能拥有一个字符?

interact()
将负责为您回音,因此您需要这样做:

w1.logfile_read = None
w1.interact()

根据pexpect:

  • 交互(转义字符='\x1d',输入过滤器=无,输出过滤器=无)

    这使交互用户(键盘上的人)可以控制子进程。击键被发送到子进程,并打印子进程的stdout和stderr输出。这只是将子stdout和子stderr回显到真正的stdout,并将真正的stdin回显到子stdin。[……]

    如果指定了日志文件,则在交互模式下从子进程发送和接收的数据将复制到给定日志。


它起作用了。谢谢