2017-08-07 14 views
0

私は、他のスレッドを生成するマスタスレッドを持っています。これは素晴らしい作品、それが最終的にワーカースレッドからprint文でごちゃ混ぜますコンソールのスクリーン印刷位置を指定しますか?

status = "Queued: {} | Workers: {}".format(queued_status, worker_status) 
sys.stdout.flush() 
sys.stdout.write("\r{}".format(status)) 

:マスタースレッドは私が/フラッシュ/アップデートを印刷する定期的な状態チェックを行います。

ステータスプリントを最上部に指定するにはどうしたらいいですか?このような何か:

スレッドの印刷だけで(通常のターミナルウィンドウのように)スクロールし続けますが、ステータスがトップにロックされている
Queued: No | Workers: 4 
........................ 
Thread print 
Thread print 
Thread print 

+1

Linuxを使用している場合(またはVT100互換端末、または少なくともANSI制御シーケンスをサポートする端末を使用している場合)は、非常に簡単です。 https://stackoverflow.com/a/45164619/4014959をご覧ください –

答えて

2

cursesモジュールは、スクリーン上の特定の場所に印刷するための通常のソリューションです。一度に1つのスレッドからすべてのテキストを印刷するように調整する必要があります。これは通常Queue.Queueで行われます(ワーカーは直接印刷するのではなくキューに追加します;空でない場合はキューからメインスレッドをポップして印刷します)。

関連する問題