pexpect interact()重复bash输出

时间:2017-03-07 12:37:04

标签: python pexpect

大家好!目前我正在尝试创建一个交互式python环境来调用bash脚本 - 使用pexpect。为了便于说明,让我们看看下面的代码和我的相应输出。它应该只生成一个bash和echo foobar的实例。

import pexpect
p = pexpect.spawn("/bin/bash -i -c 'echo foobar'")
p.interact()

这给了我输出

foobar
foobar

这是(至少对我来说)不是预期的输出,因为它似乎复制输出线。这个问题更进一步:一些脚本调用用空行充满终端,这是非常不幸的,因为我想从屏幕上的最后一次调用获得输出。我想这个问题的原因与我上面给出的例子有关。您可能认为我不需要使用p.interact()。对于这个肯定是正确的例子,但我的真实剧本需要多才多艺,并且需要用户互动。
我希望有人可以帮助我 - 提前谢谢。

1 个答案:

答案 0 :(得分:0)

我自己找到了解决方案。好像pexpect模块已经过时了。

sudo pip install --upgrade pexpect

解决了这个问题。