pexpect - 如何匹配大输出字符串中的大量块

时间:2015-10-10 03:30:37

标签: python regex pexpect

我正在使用pexpect登录远程设备来查询某些指标。

我的命令输出很大(大约15k字节),我需要从输出中提取许多指标。所以我使用像

这样的大模式字符串

"key1:([0-9a-zA-Z]*).*key2:([0-9a-zA-Z]*).*key3......"

匹配所有指标。当模式太长时,期望会阻塞并永不终止。

我已经将maxread设置为20k,但它不起作用。有没有人对如何解决这个问题有一些想法?

添加代码段:

        session.sendline(command_info["text"])
        ret = session.expect([CMD_PROMPT, pexpect.EOF, pexpect.TIMEOUT])
        if ret == 1:
            logger.error("EOF error.")
            return
        if ret == 2:
            logger.error("Timeout")
            return

        result = re.match(getExpectedGroupStr(command_info, logger), session.before, re.S)

如果我使用大型模式字符串而不是CMD_PROMPT,则session.expect将挂起并且即使达到超时也不会终止。

0 个答案:

没有答案