WEB开发网
开发学院软件开发Python 探索 Pexpect,第 2 部分:Pexpect 的实例分析 阅读

探索 Pexpect,第 2 部分:Pexpect 的实例分析

 2009-08-29 00:00:00 来源:WEB开发网   
核心提示: login 方法 login(self,server,username,password='',terminal_type='ansi',iginal_prompt=r"[#$]",login_timeout=10,port=None,auto

login 方法

 login (self,server,username,password='',terminal_type='ansi', 
   iginal_prompt=r"[#$]",login_timeout=10,port=None,auto_prompt_reset=True):

使用原始 original_prompt 来找到 login 后的提示符(这里默认 original_prompt 是“$”或“#”,但是有时候可能也是别的 prompt,这时就需要在 login 时手动指定这个特殊的 prompt,见上例,有可能是“ > ”),如果找到了,立马使用更容易匹配的字符串来重置该原始提示符(这是由 pxssh 自己自动做的,通过命令 "PS1='[PEXPECT]\$ '" 重置原始提示符,然后每次 expect 匹配 \[PEXPECT\][\$\#])。原始提示符是很容易被混淆和胡弄的,为了阻止错误匹配,最好根据特定的系统,指定更加精确的原始提示符,例如 "Message Of The Day" 。有些情况是不允许重置原始提示符的,这时就要设置 auto_prompt_reset 为 False 。而且此时需要手动设置 PROMPT 域为某个正则表达式来 match 接下来要出现的新提示符,因为 prompt() 函数默认是 expect 被重置过的 PROMPT 的。

prompt方法

prompt (self, timeout=20):

匹配新提示符(不是 original_prompt)。注:这只是匹配提示符,不能匹配别的 string,如果要匹配特殊 string,需直接使用父类 spawn 的 expect 方法。 prompt 方法相当于是 expect 方法的一个快捷方法。如果auto_prompt_reset 为 False,这时需要手动设置 PROMPT 域为某个正则表达式来 match 接下来要出现的 prompt,因为 prompt() 函数默认是 expect 被重置过的 PROMPT 的。

上一页  4 5 6 7 8 9 10  下一页

Tags:探索 Pexpect 部分

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