仕事が終わったときに入力を受け取るプログラムを実行しようとしています。私はいくつかのフォームを調べ、ドキュメントを調べました。これを Debian で実行していますが、このgetch 関数を使用して、リターン キーを押さずに文字を受け取ることができることを理解しています。それを分解するために、これは私が無限 while ループで実装しようとしているものです
- 入力を取り込みます(ここではスレッドが機能しませんでした
- 入力をキューに入れる
- 実行中のジョブがない場合は、キューの前のアイテムを変数としてジョブを開始します
また、スレッド モジュールを実行して、別の命令を実行しています。これを行う方法はありますか?
更新:これは私がこれまでに試したことです:
まず、スレッド化モジュールのタイマーを使用して待機を停止しようとしましたが、次のようになりました。
def getchnow():
def time_up():
answer= None
print 'time up...'
wait = Timer(5,time_up) # x is amount of time in seconds
wait.start()
try:
print "enter answer below"
answer = getch()
except Exception:
print 'pass\n'
answer = None
if answer != True: # it means if variable have somthing
wait.cancel() # time_up will not execute(so, no skip)
return answer
line = getchnow()
#Add line variable to queue
#Do stuff with queue
ここでの問題は、まだユーザー入力を待っていることです。
次に、 getch 関数を別のスレッドに入れようとしました。
q = Queue.Queue
q.put(getch())
if q.get() != True: # it means if variable have somthing
line = q.get()
#Add line variable to queue
#Do stuff with queue
この試みでは何もできません。