コンソールから出力を表示するpythonチャットボットを書いています。0.5 秒ごとにサーバーに更新を要求し、メッセージに応答します。コンソールにチャットログが表示されます。
ほとんどの場合、これで十分ですが、通常のワークフローを中断して、自分でカスタム チャットの回答を書きたい場合があります。「カスタム返信モード」に切り替えるボタン (または組み合わせ) を押すことができれば幸いです。それを行う、または同様の結果を達成するための最良の方法は何ですか?
どうもありがとう!
select.select()
onを使用sys.stdin
すると、端末でキーが押されたかどうかを確認できます。
前の回答のコメントを考えると、キーが押されるとすぐにトリガーされるものではなく、キーが押されたかどうかを判断する非ブロック関数が必要です。
そのため、OS で利用可能な端末 API のいくつかを使用することをお勧めします。通常、これは curses または win32 コンソール API です。ただし、asciimaticsで両方に共通のラッパーを作成しました。のget_event()
メソッドは、Screen
マウスとキーボードのイベントを取得する簡単なクロスプラットフォームの方法を提供する必要があります。キーボード イベントかどうかを確認するには、返されたイベントの種類を確認します。イベントがなかった場合は のリターン コードが返されますNone
が、キーが押された場合は が返されます KeyboardEvent
。