首页 > 解决方案 > 从同一行的 msvcrt.getch() 获取输入后没有打印输出

问题描述

目标

代码

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.")

标签: pythonprintingmsvcrt

解决方案


事实证明,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.")

推荐阅读