1

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 からの出力を毎秒チェックし、必要に応じてユーザー入力を許可しながらメニューを更新できます。私が抱えている問題は、標準出力をキャプチャして、必要なときに表示する方法がわからないことです。これはまったく可能ですか?

4

1 に答える 1