python - 从同一行的 msvcrt.getch() 获取输入后没有打印输出
问题描述
目标:
- 从同一行获取用户的单个字符输入,而无需按
ENTER
, - 用户选择一个选项后打印。
代码:
import msvcrt
print("Overwrite? (y/n): ", end="", flush=True)
res = msvcrt.getch()
if res.upper() == 'Y':
print("The file has been overwritten.")
目前,在我输入程序后,下面的打印语句不会被打印出来y
。
print("The file has been overwritten.")
解决方案
事实证明,msvcrt.getch()
将返回一个bytes
类型而不是 a str
,因此您必须utf-8
在尝试检查其值之前将输入解码为:
import msvcrt
print("Overwrite? (y/n): ", end="", flush=True)
res = msvcrt.getch().decode('utf-8')
if res.upper() == 'Y':
print("The file has been overwritten.")
推荐阅读
- amazon-rds - 如何使用 JMESPath 通过 DBInstanceIdentifier 查询 AWS CLI RDS 实例
- javascript - 通过用户变量过滤以获取我需要的用户不起作用,还创建了从一个用户到另一个用户的链接
- java - 注释的顺序在 SB 应用程序中是否重要?
- javascript - 检测 eslint 中未解析的函数
- javascript - 如果从 ngOnDestroy 生命周期钩子中调用异步函数,如何收集组件垃圾?
- mysql - 在同一张表 MySQL 5.6 上更新触发器
- c++ - c++ 成员不是变量而只是数据类型的名称吗?
- javascript - 即使从请求中获取 json,Ajax 请求也没有显示在我的 django 模板中
- c# - 单独服务器上的数据库 - 备份 .bak
- c - Pin 工具:通过 RTN_Replace 使用进入/退出函数包装所有例程