需要有关 pexpect 模块的帮助 - 脚本找不到匹配项
Need assistance with pexpect module - script doesn't find the match
我正在编写一小段代码以远程登录到交换机并提供用户名和密码。我使用 pexpect spawn class 来实现这一点。
我创建了一个 prompt_list,寻找 'login' 和 'password',然后输入用户名和密码。
我看到的问题是预期匹配 'login' 但不是密码。在 运行ning 2 -3 次后,匹配。我是否必须添加一些延迟或类似的东西才能让它在第一时间运行。
哪位好心人可以帮忙...
try:
child = pexpect.spawn(cmd, timeout= 100)
child.logfile = sys.stdout
child.sendline('\n')
conn = True
except:
print ' some exception occured'
if conn:
i = child.expect(prompt_list, timeout = 10)
if i == 0:
print 'inside login prompt'
child.sendline('admin')
i = child.expect(prompt_list, timeout = 10)
if i == 1:
print 'Inside password prompt'
child.sendline('password')
i = child.expect(prompt_list, timeout = 10)
我的 prompt_list 是:
prompt_list = ['login:','Password:']
当我 运行 执行此操作时,出现以下错误
Switch login: inside login prompt
admin
手动登录切换时提示如下
switch login: admin
Password:
您在 try/except
中的 child.sendline('\n')
引起了问题:
import pexpect
conn = False
import sys
try:
child = pexpect.spawn("telnet 127.0.0.1", timeout= 100)
child.logfile = sys.stdout
conn = True
except:
print ' some exception occured'
if conn:
child.expect(":", timeout = 10)
child.sendline('user')
child.expect(":", timeout = 10)
child.sendline('password')
child.expect(">")
我正在编写一小段代码以远程登录到交换机并提供用户名和密码。我使用 pexpect spawn class 来实现这一点。
我创建了一个 prompt_list,寻找 'login' 和 'password',然后输入用户名和密码。
我看到的问题是预期匹配 'login' 但不是密码。在 运行ning 2 -3 次后,匹配。我是否必须添加一些延迟或类似的东西才能让它在第一时间运行。
哪位好心人可以帮忙...
try:
child = pexpect.spawn(cmd, timeout= 100)
child.logfile = sys.stdout
child.sendline('\n')
conn = True
except:
print ' some exception occured'
if conn:
i = child.expect(prompt_list, timeout = 10)
if i == 0:
print 'inside login prompt'
child.sendline('admin')
i = child.expect(prompt_list, timeout = 10)
if i == 1:
print 'Inside password prompt'
child.sendline('password')
i = child.expect(prompt_list, timeout = 10)
我的 prompt_list 是:
prompt_list = ['login:','Password:']
当我 运行 执行此操作时,出现以下错误
Switch login: inside login prompt
admin
手动登录切换时提示如下
switch login: admin
Password:
您在 try/except
中的 child.sendline('\n')
引起了问题:
import pexpect
conn = False
import sys
try:
child = pexpect.spawn("telnet 127.0.0.1", timeout= 100)
child.logfile = sys.stdout
conn = True
except:
print ' some exception occured'
if conn:
child.expect(":", timeout = 10)
child.sendline('user')
child.expect(":", timeout = 10)
child.sendline('password')
child.expect(">")