ホームページ バックエンド開発 Python チュートリアル Python で BlockingQueue を使用してキーボード ハンドラーを実装する方法

Python で BlockingQueue を使用してキーボード ハンドラーを実装する方法

Oct 30, 2024 pm 12:47 PM

How to Implement a Keyboard Handler Using a BlockingQueue in Python?

キーが押されるたびに関数を呼び出すキーボード ハンドラーを実装する最も簡単な方法 (これは Linux と Windows の両方で機能します) の 1 つは、BlockingQueue とキーが押されたときにキーをキューに入れるスレッドで、キューはコードの後半でキーを取得します。簡単な実装は次のとおりです:

<code class="python">import queue
import sys
import threading

# blocking
q = queue.Queue()
last_input = 0.0


def input_thread(q):
    global last_input
    while True:
        ch = sys.stdin.read(1)
        last_input = time.time()
        print("got key: '{}'".format(ch))
        q.put(ch)

if __name__ == '__main__':
    t = threading.Thread(target=input_thread, args=(q,))
    t.daemon = True
    t.start()

    last_input_time = last_input

    while True:
        if not q.empty() and (time.time() - last_input) &lt; 5:
            print(&quot;polling '{}' in the queue&quot;.format(q.get()))

        if time.time() - last_input_time &gt; 5:
            print("nothing in the queue for a while")
            raise RuntimeError("no input")</code>
ログイン後にコピー

以上がPython で BlockingQueue を使用してキーボード ハンドラーを実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットな記事タグ

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

HTMLを解析するために美しいスープを使用するにはどうすればよいですか? HTMLを解析するために美しいスープを使用するにはどうすればよいですか? Mar 10, 2025 pm 06:54 PM

HTMLを解析するために美しいスープを使用するにはどうすればよいですか?

Pythonでの画像フィルタリング Pythonでの画像フィルタリング Mar 03, 2025 am 09:44 AM

Pythonでの画像フィルタリング

Pythonでファイルをダウンロードする方法 Pythonでファイルをダウンロードする方法 Mar 01, 2025 am 10:03 AM

Pythonでファイルをダウンロードする方法

Pythonを使用してテキストファイルのZIPF配布を見つける方法 Pythonを使用してテキストファイルのZIPF配布を見つける方法 Mar 05, 2025 am 09:58 AM

Pythonを使用してテキストファイルのZIPF配布を見つける方法

Pythonを使用してPDFドキュメントの操作方法 Pythonを使用してPDFドキュメントの操作方法 Mar 02, 2025 am 09:54 AM

Pythonを使用してPDFドキュメントの操作方法

DjangoアプリケーションでRedisを使用してキャッシュする方法 DjangoアプリケーションでRedisを使用してキャッシュする方法 Mar 02, 2025 am 10:10 AM

DjangoアプリケーションでRedisを使用してキャッシュする方法

TensorflowまたはPytorchで深い学習を実行する方法は? TensorflowまたはPytorchで深い学習を実行する方法は? Mar 10, 2025 pm 06:52 PM

TensorflowまたはPytorchで深い学習を実行する方法は?

Natural Language Toolkit(NLTK)の紹介 Natural Language Toolkit(NLTK)の紹介 Mar 01, 2025 am 10:05 AM

Natural Language Toolkit(NLTK)の紹介

See all articles