2017-03-07 9 views
2

こんにちは皆さん!現在、私はbashスクリプトを呼び出すためのインタラクティブなPython環境を作成しようとしています.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 

がプローブを解決しました。