2017-06-28 13 views
0

(これはncursesベースのLinuxツール]ダイアログ」についてである)ダイアログ - ショーは出力をパイプすぐ

私はこれとすぐにプログラムを実行し、「ダイアログ--programbox」で、その出力を印刷したいと思います

出力が利用可能です。私はテストのために、この例を使用します。

「dummyoutput」はゆっくりと4に0を出力し、小さなPythonスクリプト、ある
dummyoutput | dialog --programbox "output" 20 70 

#!/usr/bin/env python 
import time 
for i in range(5): 
    time.sleep(0.5) 
    print i 

現在、programboxが表示されますが、すべての出力があるだけで'dummyoutput'の後に表示されます。

各ラインは、使用可能になるとすぐにプログラムボックスに表示されます(半秒ごとに1つずつ)。

+1

pythonで印刷するたびに 'sys.stdout.flush()'を試してみてください。 – jordanm

答えて

0

@jordanmのコメントは素晴らしく、うまくいきました。それで、実際のプロジェクトでも同じ原則を簡単に適用できます。

これは、log4jロギングフレームワークを使用するJavaアプリケーションです。 FileAppender以外に、私はConsoleAppenderを使って特定のメッセージを直接コンソールに表示します。アペンダーにはImmediateFlushというプロパティがあります。 trueに設定されている場合、出力は使用可能になるとすぐにコンソールおよびダイアログボックスに表示されます。

関連する問題