Python键绑定(bind)/捕获

mate10pro 阅读:146 2024-09-07 23:24:14 评论:0

我想知道在python中绑定(bind)键的最简单方法

例如,默认的 python 控制台窗口出现并等待,然后在 psuedo ->

if key "Y" is pressed: 
   print ("Yes") 
if key "N" is pressed: 
   print ("No") 

我想实现这个 没有 使用任何 模块 不包含在 python 中。只是纯 python

非常感谢任何和所有帮助

python 2.7 或 3.x Windows 7

注: raw_input()要求用户按回车键,因此不是键绑定(bind)

请您参考如下方法:

来自 http://code.activestate.com/recipes/134892/ (虽然有点简化):

class _Getch: 
    """Gets a single character from standard input.  Does not echo to the 
screen.""" 
    def __init__(self): 
        self.impl = _GetchUnix() 
    def __call__(self):  
        return self.impl() 
 
 
class _GetchUnix: 
    def __init__(self): 
        import tty, sys 
    def __call__(self): 
        import sys, tty, termios 
        fd = sys.stdin.fileno() 
        old_settings = termios.tcgetattr(fd) 
        try: 
            tty.setraw(sys.stdin.fileno()) 
            ch = sys.stdin.read(1) 
        finally: 
            termios.tcsetattr(fd, termios.TCSADRAIN, old_settings) 
        return ch 
 
getch = _Getch() 

然后你可以这样做:
>>> getch() 
'Y' # Here I typed Y 

这很棒,因为它不需要任何 3rd 方模块。


标签:Python
声明

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

关注我们

一个IT知识分享的公众号