如何使用click.getchar()识别;输入Key";(python)
我正在制作一个Python脚本,希望让用户使用箭头键在屏幕中导航 我从@yatsa那里找到了这个答案,这个答案对箭非常有用:如何使用click.getchar()识别;输入Key";(python),python,Python,我正在制作一个Python脚本,希望让用户使用箭头键在屏幕中导航 我从@yatsa那里找到了这个答案,这个答案对箭非常有用: #/usr/bin/python 导入点击 可打印='0123456789abcdefghijklmnopqrstuvxyzabcdefghijklmnopqrstuvxyz!"#$%&\'()*+,-./:;?@[\\]^_`{|}~' 尽管如此: 单击.echo('Continue?[yn]”,nl=False) c=click.getchar() click.ec
#/usr/bin/python
导入点击
可打印='0123456789abcdefghijklmnopqrstuvxyzabcdefghijklmnopqrstuvxyz!"#$%&\'()*+,-./:;?@[\\]^_`{|}~'
尽管如此:
单击.echo('Continue?[yn]”,nl=False)
c=click.getchar()
click.echo()
如果c==“y”:
单击.echo('我们将继续')
elif c==“n”:
单击.echo('Abort!')
打破
elif c=='\x1b[D':
单击.echo('左箭头')
其他:
单击.echo('无效输入:('))
click.echo('您按了:“+”.join(['\\'+hex(ord(i))[1:]如果我不是可打印的,否则我用c表示i])+“'))
本示例旨在确定是按左键还是按右键,并打印任何其他按下的键盘键的“py字符串表示法”
说,我必须更改代码使其适合我…当我运行上面的代码时,它没有识别左右箭头。
相反,它打印给我:
您按下了“\xe0K”
(左箭头)
及
您按下了“\xe0M”
(右箭头)
我做了什么?将elifs中的值替换为控制台打印给我的值,它工作了! 好的,很好,接下来我想识别“回车键”,所以我运行脚本,按回车键,它打印给我:
你按了“\xd”
那么,我做了什么?使用控制台打印给我的字符串创建了一个新的条件 但是…
elif c == '\xd':
^
SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 0-2: truncated \xXX escape
Process finished with exit code 1
所以,我不知道是什么问题,我试图搜索网页,但没有找到任何解释
我正在使用Windows 7。我建议您使用(或参考)该库。这里的好处是您能够遵守Windows和Linux(OSX似乎在该库中处于试验阶段)
为了明确回答您的问题,您似乎应该使用Enter
编辑:添加输入键的链接强烈建议:如果您确实想要文本模式UI,请不要依赖ASCII光标控制字符。使用库: