从python CLI读取Ctrl、Alt和Shift键
在编写CLI程序时,我想阅读从python CLI读取Ctrl、Alt和Shift键,python,command-line-interface,Python,Command Line Interface,在编写CLI程序时,我想阅读Ctrl+命令 如何从CLI python应用程序中侦听和处理组合键,即:Ctrl+R 目前,它只对Linux环境有必要。蟒蛇式的方法是最好的选择,但我不知道怎么做 通过信号,可以处理众所周知的输入,但不能自定义击键。是一个用于处理各种操作系统的鼠标和键盘输入的软件包。演示如何检测保留的密钥。如果您不想访问该链接: from pynput import keyboard # The key combination to check COMBINATION = {ke
Ctrl+
命令
如何从CLI python应用程序中侦听和处理组合键,即:Ctrl+R
目前,它只对Linux环境有必要。蟒蛇式的方法是最好的选择,但我不知道怎么做
通过信号,可以处理众所周知的输入,但不能自定义击键。是一个用于处理各种操作系统的鼠标和键盘输入的软件包。演示如何检测保留的密钥。如果您不想访问该链接:
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()
是一个用于处理各种操作系统的鼠标和键盘输入的软件包。演示如何检测保留的密钥。如果您不想访问该链接:
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()
您需要直接调用OS函数来获取这些键的状态。你正在运行哪个操作系统?虽然控件和字母的组合将生成一个可以检测的字符。很好。但是,有一些pythonic的方法可以做到这一点,而不需要编写一个操作系统绑定的实现吗?我相信来自stdin的红色是一种干净的方法。。。但是,我不知道怎么做。你的目标是使用任何键进行控制,还是只使用字母表中的字母?是的。我的目的是构建支持任何命令的CLI工具,例如,使用Ctrl+R强制重新加载。您需要直接调用操作系统函数来获取这些键的状态。你正在运行哪个操作系统?虽然控件和字母的组合将生成一个可以检测的字符。很好。但是,有一些pythonic的方法可以做到这一点,而不需要编写一个操作系统绑定的实现吗?我相信来自stdin的红色是一种干净的方法。。。但是,我不知道怎么做。你的目标是使用任何键进行控制,还是只使用字母表中的字母?是的。我的目的是构建支持任何命令的CLI工具,例如,通过Ctrl+R来强制重新加载。这将使用限制在您的本地Linux桌面上,并且在没有X的Linux机器上无法通过SSH工作。例如“在Linux上,pynput使用X,因此必须运行X服务器”。这将限制仅在本地Linux桌面上使用,并且在没有X的Linux机器上无法通过SSH工作。