1. ホーム
  2. python

Pythonでtime.sleep()をブレーク/インターラプトする

2023-09-05 20:09:31

質問

ctrl cでtime.sleep()から抜けたいのですが、どうすればいいですか?

While 1:
    time.sleep(60)

上記のコードでは、コントロールがtime.sleep関数に入ったとき、pythonがCTRL Cを処理するために60秒を経過する必要があります。

コントロールがtime.sleep関数に入ったときでも中断できるような、エレガントな方法はないでしょうか?

編集

私はWindows 2000でpython 2.2を使用するレガシーな実装でテストしていたので、すべてのトラブルが発生しました。もし私がより高いバージョンの python を使用していたなら、CTRL C は sleep() を中断していたでしょう。私は、forループの中でsleep(1)を呼び出すことによって素早くハックしました。

どのように解決するのですか?

このコードの意味がよくわからないのですが、必要であれば、sleep()の間隔を短くして、その周りにforループを置くとよいでしょう。

for i in range(60):
   sleep(1)

をキャッチする キーボードインタラプト 例外をキャッチするのは簡単です。