我使用pexpect远程登录交换机并执行某些操作。
我写了一个简单的代码如下:
child1 = pexpect.spawn(cmd1, timeout = 15)
child1.logfile = sys.stdout
j = child1.expect(prompt_list, timeout = 115)
if j == 1:
print 'Inside username block'
child1.sendline('test')
j = child1.expect(prompt_list, timeout = 15)
当我使用sendline时,我在日志中看到它正在显示两次。不确定原因。我们可以阻止这个吗?
Inside username block
test
test
答案 0 :(得分:1)
而不是使用
child1.logfile = sys.stdout
使用
child1.logfile_read = sys.stdout
答案 1 :(得分:0)
在不了解您的设置的情况下,我将提出此解决方案:
child1.setecho(False) # Turn off tty echo
我认为你所经历的就是这个小小的回声。
请确保在发送任何内容之前执行此操作,因为这会清空您的传出缓冲区,并且您可能会丢失一些信息。