首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >pexpect模块分线方法的难点

pexpect模块分线方法的难点
EN

Stack Overflow用户
提问于 2011-08-20 16:43:42
回答 1查看 1.5K关注 0票数 0

如果我期望面试问题中有一些字符串,我需要通过给出一个预定义的答案来自动化面试过程。

我正在使用pexpect.spawn启动一个子进程,并通过面试。

我的代码的一部分是:

代码语言:javascript
复制
child.expect("\> ")

child.sendline("test")

我使用child.logfile=fout将面试过程保存在一个文件中

fout的一部分是:

代码语言:javascript
复制
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等选项,但是没有任何效果。

EN

回答 1

Stack Overflow用户

发布于 2012-04-27 06:16:35

哇,得到答案:child.setecho(False)

在这个问题上工作了几个小时。幸运的是这起作用。

我认为问题在于,每当我们发送一行时,如果我们发送的行与我们所选择的模式相匹配(比如我们通常使用的提示符)。)然后,在结果出来之前,期待回报。

不得不说,我们必须谨慎地选择预期的模式。对于我来说,我遵循了示例中推荐的方法,设置PS1=PEXPECT\$,然后关闭setecho,然后发送命令来更改PS1 --这个过程对我来说是有效的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7133175

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档