python-3.x - 如何在期望用户输入()时检测“ESC”按键
问题描述
我尝试使用
if msvcrt.kbhit():
key_stroke = msvcrt.getch()
if key_stroke==chr(27).encode(): #b'\x1b'
print ("Esc key pressed")
sys.exit()`
之前和之后, data=input('Enter a value:')
但未检测到Esc key_stroke
也就是说,虽然期望用户使用input()函数进行输入,但如果用户按下Esc键,我想做sys.exit()
解决方案
尝试这个:
import sys
import msvcrt
def func():
print ('Enter user input:')
while True:
if msvcrt.kbhit():
key_stroke = msvcrt.getche()
if key_stroke==chr(27).encode():
print ("Esc key pressed")
sys.exit()
else:
#print (str(key_stroke).split("'")[1],"key pressed")
i=str(key_stroke).split("'")[1]+input()
print ("User input:",i)
func()
注意:我使用的是 getche 而不是 getch,它与 getch 类似,但会打印按下的键。
推荐阅读
- javascript - 尝试使用handlebars-express将字符串变量传递给html内的javascript范围
- amazon-ec2 - 如何防止 EC2 实例在重启时更改公网 IP 地址?
- typescript - 一般为多种 SVG 元素类型键入 d3 选择
- sql - SQL 查询未按预期执行:Visual Studio
- javascript - 在标题中包含 Bootstrap 4 时,鼠标事件不起作用
- database - 确保应用程序的早期版本在更改数据库设计时不会崩溃的最佳方法是什么?
- javascript - javascript中文件的校验和
- sql - 如何将多行插入特定的 postmeta
- alloy - 排序谓词不可满足
- wix3.11 - 在“片段:”部分中未解决对符号“目录:Component_A.Binaries”的引用