Pexpect不匹配(控制代码)

时间:2017-01-18 17:34:46

标签: python python-2.7 automation pexpect

针对Casa CMTS /路由器运行的Pexpect脚本。

我为思科和Adva设备开发了这个脚本的实现,所以我知道这种技术是合理的,但由于某种原因,我遇到了特定期望的问题。

我正在尝试匹配一个简单的

:

但是,以下代码不起作用:

def handleAllPrompts(self):
    while self.child.after == ":":
        print "waiting"
        self.child.expect(":", 20)
    try:
        self.child.expect("\>\ *$|#\ *$|\$\ *$", 20)
    except pexpect.exceptions.TIMEOUT as e:
        print self.child.before

这应该在执行具有多个输出屏幕的show run之类时自动处理“更多”提示。

Pexpect因此信息崩溃:

before (last 100 chars): 'sis downstream channel utilization"\r\nalias save "copy run start"\r\nalias scm "show cable modem"\r\n:\x1b[K'

我正在尝试检测最后一个冒号(:\x1b[K),但是你可以看到它是冒号+术语控制代码。

但是这样做:

def handleAllPrompts(self):
    while self.child.after == ":\x1b[K":
        print "waiting"
        self.child.expect(":\x1b[K", 20)
    try:
        self.child.expect("\>\ *$|#\ *$|\$\ *$", 20)
    except pexpect.exceptions.TIMEOUT as e:
        print self.child.before

也不起作用。

有什么想法吗?

0 个答案:

没有答案