描述
当stdin流被重定向到文件或管道时,只能获取输入源文本,无法再用它读取用户交互输入。
要实现stdin接收输入并利用console作为用户交互,需要使用特殊的借口从键盘,而非标准输入,直接读取用户输入。python标准库msvcrt模块提供了该功能。
方法
控制输入输出( console I/O )
msvcrt.putch(char) 用于没有缓存地输出一个字节型char,且不会自动换行
>>>import msvcrt
>>>msvcrt.putch(b'a')
a>>>
注意:
该函数接收的的字符必须是byte型
该函数只能接收一个字符,而非字符串
其输出后不会自动换行
msvcrt.putwch(unicode_char) 和上一个类似,唯一的区别在于msvcrt.putwch的接收范围更大,允许接收a Unicode value
>>>import msvcrt
>>>msvcrt.putch('a')
a>>>
msvcrt.getche() 用于读取一个键盘按键,并且以byte型返回,但是不会在控制台(一般是命令行)回显。
>>>import msvcrt
>>>msvcrt.getch() #在键盘上按下 a
b'a'
>>>ans=msvcrt.getch() #此时,在键盘上按下a,conso