从python CLI中读取Ctrl,Alt和Shift键

时间:2017-09-22 17:45:36

标签: python command-line-interface

编写CLI程序,我想阅读Ctrl+<anything>命令。

如何从CLI python应用程序中监听和处理即:Ctrl+R组合键?

目前,仅适用于Linux环境。 pythonic方法是最好的选择,但我不知道如何。

根据信号,可以处理众所周知的输入,但不能处理自定义击键。

1 个答案:

答案 0 :(得分:2)

Pynput是一个用于处理各种操作系统的鼠标和键盘输入的软件包。 This Github issue演示了如何检测保持的密钥。如果您不想关注该链接:

from pynput import keyboard

# The key combination to check
COMBINATION = {keyboard.Key.cmd, keyboard.Key.ctrl}

# The currently active modifiers
current = set()


def on_press(key):
    if key in COMBINATION:
        current.add(key)
        if all(k in current for k in COMBINATION):
            print('All modifiers active!')
    if key == keyboard.Key.esc:
        listener.stop()


def on_release(key):
    try:
        current.remove(key)
    except KeyError:
        pass


with keyboard.Listener(on_press=on_press, on_release=on_release) as listener:
    listener.join()