[英]Difficulty in sendline method of pexpect module
如果我期望面试问题中有一些疑问,我需要通过给出预定义的答案来使面试过程自动化。
我正在使用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
如上所示,它是第一次匹配新行,因此注释为“ Invalid input:”。 因此,它两次询问相同的问题,然后接受“测试”作为答案。
我怎样做才能使我的答案第一次被接受?
是否有任何与child.expect中的参数“ timeout”相关的信息?
我尝试使用诸如timeout = 0,timeout = -1等选项。但是没有任何效果。
哇得到答案: child.setecho(False)
在这个问题上工作了几个小时。 幸运的是,这可行。
我认为问题在于,每当我们发送一条线时,如果发送的线与我们epxect的模式匹配(就像我们通常使用的PROMPT一样),那么在结果出来之前pexpect返回。
不得不说,我们必须谨慎选择预期模式。 通常,对我而言,我按照示例中的建议方法进行操作,设置PS1 = [PEXPECT] \\ $,然后将setecho关闭,然后发送命令以更改PS1,此过程对我而言有效。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.