繁体   English   中英

pexpect模块的sendline方法困难

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM