WEB开发网
开发学院软件开发Python 探索 Pexpect,第 1 部分:剖析 Pexpect 阅读

探索 Pexpect,第 1 部分:剖析 Pexpect

 2009-08-29 00:00:00 来源:WEB开发网   
核心提示: 如果难以估算程序运行的时间,可以使用循环使其多次等待直至等待运行结束:清单 11. 使用循环whileTrue:index=child.expect(["suc","fail",pexpect.TIMEOUT])ifindex==0:breakelifin

如果难以估算程序运行的时间,可以使用循环使其多次等待直至等待运行结束:

清单 11. 使用循环

while True: 
  index = child.expect(["suc","fail",pexpect.TIMEOUT]) 
  if index == 0: 
    break 
elif index == 1: 
    return False 
elif index == 2: 
    pass    #continue to wait 

expect() 在执行中可能会抛出两种类型的异常分别是 EOF and TIMEOUF,其中 EOF 通常代表子程序的退出, TIMEOUT 代表在等待目标正则表达式中出现了超时。

清单 12. 使用并捕获异常

try: 
  index = pexpect (['good', 'bad']) 
    if index == 0: 
      do_something() 
    elif index == 1: 
      do_something_else() 
  except EOF: 
    do_some_other_thing() 
except TIMEOUT: 
  do_something_completely_different()  

此时可以将这两种异常放入expect等待的目标列表中:

清单 13. 避免异常

index = p.expect (['good', 'bad', pexpect.EOF, pexpect.TIMEOUT]) 
if index == 0: 
  do_something() 
elif index == 1: 
  do_something_else() 
elif index == 2: 
  do_some_other_thing() 
elif index == 3: 
  do_something_completely_different() 

expect 不断从读入缓冲区中匹配目标正则表达式,当匹配结束时 pexpect 的 before 成员中保存了缓冲区中匹配成功处之前的内容, pexpect 的 after 成员保存的是缓冲区中与目标正则表达式相匹配的内容。

上一页  1 2 3 4 5 6 7 8 9  下一页

Tags:探索 Pexpect 部分

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接