我正在考虑开始使用Pexpect。在Pexpects主页上我发现了这个:
问:为什么不使用Expect?答:我喜欢 它。这很棒。我救了我 一些真正的果酱,但我想要一些东西 这将占我需要的90% 期望;是10%的大小;并允许 我用Python编写代码 TCL。 Pexpect并没有那么大 如期待,但Pexpect做了一切 我曾经用过Expect。
Pexpect和Expect之间有10%的差异。所以我的问题是这10%的差异是什么。什么是期望可以做的,Pexpect不能。
答案 0 :(得分:8)
那个问题(“ Expect可以做什么,Pexpect不能”)有点误导。并不是说Pexpect不能做那些Expect可以做的事情;这是Expect有很多额外的支持,使这种编程更容易。
作为示例,使用interaction命令,该命令允许用户直接与生成的进程交互。在Pexpect中,所有这些都是互动的。 (正如您所说,这可能足以满足您的需求。)相比之下,Expect的交互支持在交互期间检测模式,将多个生成的进程挂钩等等。当然,您可以通过自己编码来完成所有这些操作。但是你的代码会更长 - 有时会长得多,因为你基本上必须重写你自己的交互,你必须调试它,等等。事实上,你可能已经遇到过这些情况,但没有意识到有多简单相当于Expect代码。
当然,额外的支持可能会被您对Python的偏好所抵消。 :-P