我有一个像这样定义的函数:
def cmd_success(cmd_session, success_cmd, failure_cmd=None):
....
....
我在这里调用这个函数:
for command in commands:
success = cmd_success(session, str_prompt, 'Invalid')
if success == False:
print "Invalid Command"
sys.exit()
目前,它只是检查“无效”'字符串,但我想检查'错误','不完整'。由于种种原因,我无法更改cmd_success函数中的代码,因此我在函数调用期间寻找了一种方法。
这样的事情:
for command in commands:
success = cmd_success(session, str_prompt, ['Invalid', 'Error', Incomplete')
if success == False:
print "Invalid Command"
sys.exit()
那不起作用并给我这个:
TypeError: got <type 'tuple'> (['Invalid', 'Error', 'Incomplete' ]) as pattern, must be one of: <type 'basestring'>, pexpect.EOF, pexpect.TIMEOUT
无论如何它可以找到所有三个字符串吗?争论的焦点是&#39; failure_cmd&#39;并且它只期望1个字符串,但我希望所有3个字符串都通过,因此找到其中任何一个,成功设置为false。
由于 戴蒙
答案 0 :(得分:1)
根据其文档,pexpect
采用正则表达式作为其模式参数。正则表达式可能也适用于cmd_success()
模式。
试试这个:
success = cmd_success(session, str_prompt, 'Invalid|Error|Incomplete')