即使条件明显满足,键盘中断也不起作用

2024-10-02 12:25:26 发布

您现在位置:Python中文网/ 问答频道 /正文

当用户按下键盘箭头时,我正在打印以下内容:

You picked left! 
You picked left! 
You picked right!

当用户按下escape键时,KeyboardInterrupt应该在打印You pressed escape!之后立即被提升,但它没有You pressed escape!已打印,但仅此而已。同样的行为也发生在JupyterLab和PyCharm中

为什么不引发键盘中断?

from pynput.keyboard import Key, Listener

class CoolTrick:

    @staticmethod
    def _on_press(key):

        if key == Key.left:
            print('\rYou picked left!',             end='       ')

        if key == Key.right:
            print('\rYou picked right!',            end='       ')

        if key == Key.esc:
            print('\rYou pressed escape!',          end='       ')

            raise KeyboardInterrupt('You interrupted the process by'
                                    'pressing escape.')

    def run(self):
        while True:
            while True:

                with Listener(
                        on_press=self._on_press) as listener:
                    listener.join()

ct = CoolTrick()

ct.run()
You pressed escape! 
You picked right!

Tags: key用户rightyouifonleftend

热门问题