在使用 sendlines 的 pexpect 模块中几乎不需要帮助
Need little assistance in pexpect module on the usage of sendlines
我正在使用 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
在不了解您的设置的情况下,我将提出以下解决方案:
child1.setecho(False) # Turn off tty echo
我想你遇到的就是这个 tty echo。
请确保在发送任何内容之前执行此操作,因为这会清空您的传出缓冲区并且您可能会丢失一些信息。
而不是使用
child1.logfile = sys.stdout
使用
child1.logfile_read = sys.stdout
我正在使用 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
在不了解您的设置的情况下,我将提出以下解决方案:
child1.setecho(False) # Turn off tty echo
我想你遇到的就是这个 tty echo。
请确保在发送任何内容之前执行此操作,因为这会清空您的传出缓冲区并且您可能会丢失一些信息。
而不是使用
child1.logfile = sys.stdout
使用
child1.logfile_read = sys.stdout