我正在使用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将挂起并且即使达到超时也不会终止。