【问题标题】:What can Expect do that Pexpect can not do?什么是 Expect 可以做而 Pexpect 不能做的?
【发布时间】:2010-08-19 12:55:16
【问题描述】:
我正在考虑开始使用 Pexpect。在 Pexpects 主页上,我发现:
问:为什么不直接使用 Expect?
A:我爱
它。这很棒。我已经把我保释出来了
一些真正的果酱,但我想要一些东西
这将完成我需要的 90%
预计;为大小的 10%;并允许
我改为用 Python 编写代码
TCL 的。 Pexpect 没有那么大
与预期一样,但 Pexpect 可以做所有事情
我曾经用过Expect。
Pexpect 和 Expect 之间有 10% 的差异。所以我的问题是这 10% 的差异是什么。什么是Expect 可以做而Pexpect 做不到的。
【问题讨论】:
标签:
comparison
expect
pexpect
【解决方案1】:
这个问题(“Expect 不能做什么,Expect 能做什么”)有点误导。并不是Pexpect 做不到Expect 可以做的事情;就是 Expect 有很多额外的支持让这种编程变得更容易。
例如,以让用户直接与衍生进程交互的交互命令为例。在 Pexpect 中,这就是 interact 所做的一切。 (正如您所说,这可能足以满足您的需求。)相比之下,Expect 的交互支持在交互期间检测模式、将多个衍生进程挂钩在一起等。当然,您可以通过自己编码来完成所有这些。但是你的代码会更长——有时会更长,因为你基本上必须重写你自己的交互,你必须调试它,等等。事实上,你可能已经遇到过这些情况,但没有意识到这有多简单等效的期望代码将是。
当然,额外的支持可能会被您对 Python 的偏好所抵消。 :-P