Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/319.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python pynput在MacOS上返回的字符太多_Python_Pynput - Fatal编程技术网

Python pynput在MacOS上返回的字符太多

Python pynput在MacOS上返回的字符太多,python,pynput,Python,Pynput,在MacOS Mojave和python 2.7.15上,以下代码: from pynput import keyboard def on_press(key): print('Key {} pressed.'.format(key)) def on_release(key): print('Key {} released.'.format(key)) if str(key) == 'Key.esc': print('Exiting...')

在MacOS Mojave和python 2.7.15上,以下代码:

from pynput import keyboard

def on_press(key):
    print('Key {} pressed.'.format(key))

def on_release(key):
    print('Key {} released.'.format(key))
    if str(key) == 'Key.esc':
        print('Exiting...')
        return False

with keyboard.Listener(
    on_press = on_press,
    on_release = on_release) as listener:
    listener.join()
按顺序按下“h j s escape”键时产生此输出

hKey 'h' pressed.
Key 'h' released.
Key 'j' pressed.
jKey 'j' released.
Key 's' pressed.
sKey 's' released.
Key Key.esc pressed.
^[Key Key.esc released.
Exiting...
%hjs
我不明白为什么

1) 字母“h”位于on_press功能输出之前

2) 在on_释放功能的输出之前,字母“j”、“s”和“^[Key”

3) 程序执行结束后,在终端提示后出现字母“hjs”

我有一种感觉,键盘输入被pynput截获,但pynput在程序执行过程中会再次将其回显到终端。这可以被抑制吗?但在程序结束后,字母会再次出现。这些字母是从哪里来的?我如何抑制这种行为

我试图添加非阻塞键盘输入,以退出一个循环不断运行的程序