2017-03-07 62 views
2

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

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

这给了我输出

foobar 
foobar 

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

回答

0

我自己找到了解决方案。似乎pexpect模块已过时。

sudo pip install --upgrade pexpect 

解决了这个问题。