telnetlib Read_Until使用正则表达式

时间:2014-04-22 22:31:07

标签: python telnet

我想阅读TelnetLib库中的多个提示。

tn.read_until(b"login: ")

这就是我目前正在使用的东西,但是你可以看到它只等待“登录:”提示。

现在在perl我的解决方案是:

$t->waitfor('/[:>%\$#]/');

我能以任何方式转换代码吗?

1 个答案:

答案 0 :(得分:2)

来自https://docs.python.org/2/library/telnetlib.html#telnetlib.Telnet.expect

  

Telnet.expect(list [,timeout])

     

从常规列表中读取一个   表达式匹配。

     

第一个参数是正则表达式列表,要么已编译   (正则表达式对象)或未编译的(字符串)。可选的第二个参数   超时,以秒为单位;默认是无限期阻止。

     

返回三个元组的元组:第一个列表中的索引   正则表达式匹配;匹配对象返回;和   文字读到并包括比赛。

     

如果找到文件结尾且未读取任何文本,请引发EOFError。   否则,当没有匹配时,返回文本所在的(-1,None,text)   到目前为止收到的文本(如果超时,可能是空字符串   发生)。

     

如果正则表达式以贪婪匹配(例如。*)或if结尾   多个表达式可以匹配相同的输入,结果是   非确定性的,可能取决于I / O时序。