Pexpect不能做什么可以做到的?

时间:2010-08-19 12:55:16

标签: comparison expect pexpect

我正在考虑开始使用Pexpect。在Pexpects主页上我发现了这个:

  问:为什么不使用Expect?

     

答:我喜欢   它。这很棒。我救了我   一些真正的果酱,但我想要一些东西   这将占我需要的90%   期望;是10%的大小;并允许   我用Python编写代码   TCL。 Pexpect并没有那么大   如期待,但Pexpect做了一切   我曾经用过Expect。

Pexpect和Expect之间有10%的差异。所以我的问题是这10%的差异是什么。什么是期望可以做的,Pexpect不能。

1 个答案:

答案 0 :(得分:8)

那个问题(“ Expect可以做什么,Pexpect不能”)有点误导。并不是说Pexpect不能做那些Expect可以做的事情;这是Expect有很多额外的支持,使这种编程更容易。

作为示例,使用interaction命令,该命令允许用户直接与生成的进程交互。在Pexpect中,所有这些都是互动的。 (正如您所说,这可能足以满足您的需求。)相比之下,Expect的交互支持在交互期间检测模式,将多个生成的进程挂钩等等。当然,您可以通过自己编码来完成所有这些操作。但是你的代码会更长 - 有时会长得多,因为你基本上必须重写你自己的交互,你必须调试它,等等。事实上,你可能已经遇到过这些情况,但没有意识到有多简单相当于Expect代码。

当然,额外的支持可能会被您对Python的偏好所抵消。 :-P