私はPythonにはかなり新しく、基本的なストップウォッチスクリプトを作成しようとしています。ストップウォッチを一時停止できるようにしたいが、次の数字が表示されるのを待つコードtime.sleep(1)
がキーボードイベントを妨害する。 BTW私はイベントを取得するために、Pythonパッケージの 'キーボード'を使用しています。私はスレッドを試みましたが、私が知る限り他のスレッドを一時停止することはできません。スクリプト全体を一時停止することなくPythonをスリープさせるには
ここに私のコードです:
import time, keyboard, sys
print('Stopwatch \n')
input('Press enter to start:')
def counter():
stopwatch = 0
while True:
time.sleep(1)
stopwatch += 1
print(stopwatch)
question()
def question():
while True:
if keyboard.is_pressed('p'):
print('\nPaused')
input('Press enter to resume:')
if keyboard.is_pressed('s'):
print('\nStopped')
sys.exit()
counter()
私は必ずしもquestion
機能を必要としませんが、私はそれが仕事を得ることができるかどうかを確認するために実験を行いました。私は2つの機能を組み合わせることができました。
非同期プログラミングへようこそ。古い冗談は次のようなものです。「プログラマーは問題を抱えていました。「わかっていますが、私は非同期プログラミングを使用します!今は彼に2つの問題があります。 –
私のコード[here](https://stackoverflow.com/a/45164619/4014959)が参考になる場合があります。 –
将来の参考として、これはUnix-Linux上の 'select'呼び出しやWindows上のスレッドを使って行うことができます。詳細はこちら[こちら](https://repolinux.wordpress.com/2012/10/09/non-blocking-read-from-stdin-in-python/) –