Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用click.getchar()识别;输入Key";(python)_Python - Fatal编程技术网

如何使用click.getchar()识别;输入Key";(python)

如何使用click.getchar()识别;输入Key";(python),python,Python,我正在制作一个Python脚本,希望让用户使用箭头键在屏幕中导航 我从@yatsa那里找到了这个答案,这个答案对箭非常有用: #/usr/bin/python 导入点击 可打印='0123456789abcdefghijklmnopqrstuvxyzabcdefghijklmnopqrstuvxyz!"#$%&\'()*+,-./:;?@[\\]^_`{|}~' 尽管如此: 单击.echo('Continue?[yn]”,nl=False) c=click.getchar() click.ec

我正在制作一个Python脚本,希望让用户使用箭头键在屏幕中导航

我从@yatsa那里找到了这个答案,这个答案对箭非常有用:

#/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光标控制字符。使用库: