我想阅读TelnetLib库中的多个提示。
tn.read_until(b"login: ")
这就是我目前正在使用的东西,但是你可以看到它只等待“登录:”提示。
现在在perl我的解决方案是:
$t->waitfor('/[:>%\$#]/');
我能以任何方式转换代码吗?
答案 0 :(得分:2)
来自https://docs.python.org/2/library/telnetlib.html#telnetlib.Telnet.expect:
Telnet.expect(list [,timeout])
从常规列表中读取一个 表达式匹配。
第一个参数是正则表达式列表,要么已编译 (正则表达式对象)或未编译的(字符串)。可选的第二个参数 超时,以秒为单位;默认是无限期阻止。
返回三个元组的元组:第一个列表中的索引 正则表达式匹配;匹配对象返回;和 文字读到并包括比赛。
如果找到文件结尾且未读取任何文本,请引发EOFError。 否则,当没有匹配时,返回文本所在的(-1,None,text) 到目前为止收到的文本(如果超时,可能是空字符串 发生)。
如果正则表达式以贪婪匹配(例如。*)或if结尾 多个表达式可以匹配相同的输入,结果是 非确定性的,可能取决于I / O时序。