while ループを使用してシリアル データを読み取り、csv ファイルに書き込んでいます。十分なデータが収集されたとユーザーが感じたら、while ループを終了できるようにしたいと考えています。
while True:
#do a bunch of serial stuff
#if the user presses the 'esc' or 'return' key:
break
私は opencv を使用してこれと似たようなことを実行しましたが、このアプリケーションでは動作していないようです (とにかく、この機能のためだけに opencv をインポートしたくありません)...
# Listen for ESC or ENTER key
c = cv.WaitKey(7) % 0x100
if c == 27 or c == 10:
break
では、どうすればユーザーがループから抜け出せるようになるのでしょうか?
また、while ループが終了した後もスクリプトの実行を継続する必要があるため、キーボード割り込みは使用したくありません。
ベストアンサー1
最も簡単な方法は、通常のCtrl-C
(SIGINT) で中断することです。
try:
while True:
do_something()
except KeyboardInterrupt:
pass
Ctrl-C
発生する原因となるのでKeyboardInterrupt
、ループの外でそれをキャッチして無視します。