ホームページ > バックエンド開発 > Python チュートリアル > Python でタイムアウトのある非同期キーボード入力を取得するにはどうすればよいですか?

Python でタイムアウトのある非同期キーボード入力を取得するにはどうすればよいですか?

Mary-Kate Olsen
リリース: 2024-12-28 09:58:11
オリジナル
631 人が閲覧しました

How Can I Get Asynchronous Keyboard Input with a Timeout in Python?

タイムアウト処理を伴う非同期キーボード入力

当面のタスクは、無期限の待機を防ぐためにタイムアウトを課しながらユーザー入力を求めることです。 Google はこのためにメール スレッドを提案していますが、満足のいく結果が得られない可能性があります。

この課題は、最大 1 つの引数を受け入れるシステム入力関数 ([raw_]input) から発生します。ただし、タイムアウトを実装するには、タイムアウト パラメータを渡す必要があります。これにより、TypeError が発生します。

Select Poll を使用した解決策

より信頼性の高い解決策には、select.select() システムの使用が含まれます。 call:

import sys, select

print("You have ten seconds to answer!")

i, o, e = select.select([sys.stdin], [], [], 10)

if (i):
    print("You said", sys.stdin.readline().strip())
else:
    print("You said nothing!")
ログイン後にコピー

Breakdown

  • select.select() は、10 秒のタイムアウトで入力ポーリング用に sys.stdin を登録します。
  • i 変数には、入力準備ができているファイル記述子のリストが含まれており、ユーザーが存在したかどうかを示します。 input.
  • input が存在する場合、readline() メソッドを使用してそれを取得します。
  • 入力なしでタイムアウトが経過すると、「何も言っていません!」というメッセージが表示されます。メッセージが表示されます。

このアプローチにより、タイムアウト機能を使用してキーボード入力を処理する際の移植性と効率が向上します。

以上がPython でタイムアウトのある非同期キーボード入力を取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート