如果我期望面试问题中有一些字符串,我需要通过给出一个预定义的答案来自动化面试过程。
我正在使用pexpect.spawn启动一个子进程,并通过面试。
我的代码的一部分是:
child.expect("\> ")
child.sendline("test")我使用child.logfile=fout将面试过程保存在一个文件中
fout的一部分是:
What would you like to use for the display name:^M
> ^M
Invalid input: ''^M
^M
What would you like to use for the display name:^M
> test
test^M如上文所示,它第一次匹配一个新行,因此注释“无效输入:”。所以它问同样的问题两次,然后接受“测试”作为答案。
我怎样才能使我的答案第一次被接受?
是否与child.expect中的参数“超时值”有关?
我试过使用诸如timeout=0、timeout=-1等选项,但是没有任何效果。
发布于 2012-04-27 06:16:35
哇,得到答案:child.setecho(False)
在这个问题上工作了几个小时。幸运的是这起作用。
我认为问题在于,每当我们发送一行时,如果我们发送的行与我们所选择的模式相匹配(比如我们通常使用的提示符)。)然后,在结果出来之前,期待回报。
不得不说,我们必须谨慎地选择预期的模式。对于我来说,我遵循了示例中推荐的方法,设置PS1=PEXPECT\$,然后关闭setecho,然后发送命令来更改PS1 --这个过程对我来说是有效的。
https://stackoverflow.com/questions/7133175
复制相似问题