我发现了一些检测特殊键盘命令(例如Ctrl+C或Ctrl+ )的示例D,但我想检测Ctrl+L并按如下方式处理它:
def ctrl_c():
...
signal.signal(signal.SIGINT, ctrl_c)
Run Code Online (Sandbox Code Playgroud)
我只针对 Linux 终端。不需要 GUI 和跨平台解决方案。
正如评论中所述,我不认为Ctrl+L会生成可以捕获的信号,但此代码将获取终端上的所有按键,并且如果是普通字符,则简单地回显它们,或者对Ctrl+C或Ctrl+做出反应L您可以也许实施类似的东西?
import getch
import sys
while True:
char = getch.getch()
if ord(char) == 3:
sys.exit()
elif ord(char) == 12:
print 'Ctrl + L Pressed!'
else:
sys.stdout.write(char)
Run Code Online (Sandbox Code Playgroud)
注意,我在 Windows 机器上测试了这个,msvcrt因为我手头没有 Linux 系统,但它应该可以正常工作。