Как остановить бесконечный цикл с определенной клавишей вместо исключения прерывания клавиатуры? - PullRequest
0 голосов
/ 22 ноября 2018

Упрощенная версия кода приведена ниже.В цикле while я обычно обрабатываю данные из последовательного порта, и измерения не ограничены ни временем, ни какими-либо значениями.Я хочу остановить выполнение с ключом в любое время, когда мне нужно остановить.

Попробовать-исключение - это самый простой способ, но он повлияет и на основной код, в котором он реализован.Это не хороший вариант в моем случае.Я не мог найти, как настроить мониторинг клавиатуры здесь введите описание ссылки здесь в класс, а также то же самое для сигналов.Я хотел бы вставить оператор if, который вызывает другую функцию в классе, чтобы остановить выполнение цикла.Любая помощь будет оценена.Спасибо

import time

class Something:

    def __init__(self):
        self.looping()

    def looping(self):
        i=0
        while True:
            i+=1
            time.sleep(1)
            print(i)

some=Something()

1 Ответ

0 голосов
/ 22 ноября 2018
import time
class Something:
    def __init__(self):
        self.looping()

    def looping(self):
        i=0

        while True:
            try:
                i+=1
                time.sleep(1)
                print(i)
            except KeyboardInterrupt:
                break
some=Something()
...