如果我在面试问题中遇到一些字符串,我需要通过提供预定义的答案来自动化面试过程。
我正在使用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”参数相关的内容?
我尝试使用诸如timeout = 0,timeout = -1等选项。但是没有任何工作。
答案 0 :(得分:0)
在这个问题上工作了几个小时。 幸运的是,这有效。
我认为问题在于每当我们发送一行时,如果我们发送的行匹配我们epxect的模式(就像我们通常使用的PROMPT那样),那么在结果出来之前 pexpect回归。
不得不说我们必须谨慎选择预期模式。 一般对我来说,我按照示例中的推荐方式,设置PS1 = [PEXPECT] \ $然后setecho off然后发送命令改变PS1 这个程序适合我。