0

ユーザー入力を求めたときに、ユーザー入力を求めてから何秒経過したかを検出する方法があるかどうか疑問に思っていますか?

ユーザーが回答を入力せずにEnterキーを15分間押した場合、別の機能にジャンプするか、ユーザー入力をデフォルト値に設定して続行する、ある種のタイマーを使用できるようにしたいと思います。

ユーザーの入力は次のとおりです。

res = input('Test result? "(P)ass,(F)ail,(R)etry,(S)ave and Quit,(Q)uit": ')

15 分 (900 秒) 後、 res = "S" に設定して続行します。

または似たようなもの。

同様のことを調査した結果、ソリューションがクロスプラットフォームではない可能性が高いと確信しました。そして、このスクリプトを Red Hat Linux で実行しています。また、PuTTY 経由でスクリプトにアクセスして実行しています。

どんな助けでも大歓迎です。

ありがとうございました。

4

1 に答える 1

1

クロスプラットフォームの方法でこれを行うのは実際には簡単です。

ユーザー入力を処理するスレッドを起動し、メイン ループからスレッドと時間の両方を監視することで、これを実行できるはずです。

関連するポイント:

  • threading モジュールのドキュメントは、ここにあります。

あなたのコード

res = input('Test result? "(P)ass,(F)ail,(R)etry,(S)ave and Quit,(Q)uit": ')

子スレッドから実行する必要があります。

  • 必要な解像度については、timeモジュールを介して時間を監視できます。
于 2015-05-27T19:19:05.160 に答える