Python プログラムで 2 つのスレッドを実行しています。1 つのスレッドは Python curses を使用してメニュー システムを実行し、入力を待機します。もう 1 つのスレッドは、メニューの選択に基づいて分析を行い、組み込みprint()
関数を介してステータスを出力します。ここでの私の問題は、印刷がcursesでうまく機能しないことcurses.echo()
です。オンの場合、入力を待っている行に印刷され、curses.noecho()
使用されている場合、出力はまったく表示されません。
出力が表示される場所とタイミングを制御したいので、最初の解決策はwindow.timeout(1000)
、次のように入力ループを設定してから、次のようにすることでした。
try:
c = window.getkey()
except:
c = -1 #timeout or error in input
if c == -1:
check_for_input()
elif c == 'KEY_RESIZE':
...
これは非常にうまく機能し、stdout からの出力を毎秒チェックし、必要に応じてユーザー入力を許可しながらメニューを更新できます。私が抱えている問題は、標準出力をキャプチャして、必要なときに表示する方法がわからないことです。これはまったく可能ですか?