python学习----msvcrt模块

描述

  • 当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,console里并不会有回显,而是将输入存在了ans变量里
>>>ans 
b'a'

注意:

  • 输入完成后,无需按下回车,该函数就会自动结束。
  • 此方法无法读取ctrl+c
  • 若按下功能键,将返回其相应的转义字符或十六进制编码,当按下特殊的功能键时,会返回’\000’或者’\xe0’(python手册里是这样写的,但这个特殊的功能键是什么,我还没搞清楚)
  • python手册原文: Read a keypress and return the resulting character as a byte string. Nothing is echoed to the console. This call will block if a keypress is not already available, but will not wait for Enter to be pressed. If the pressed key was a special function key, this will return or ‘\xe0’; the next call will return the keycode. The Control-C keypress cannot be read with this function.
  • msvcrt.getwch() 和上一个类似,唯一的区别在于msvcrt.getwch()的接收范围更大,允许接收a Unicode value
  • msvcrt.getche() 和 msvcrt.getch() 类似,唯一的区别在于msvcrt.getche()会将输入回显在console中
>>>import msvcrt
>>>msvcrt.getche() #在键盘上按下a
>>>ab'a' #前一个a是对输入的回显,b'a'是返回的结果
>>>ans=msvcrt.getche() #在键盘上按下a
a>>> #这里的a是对输入的回显
>>>ans #查看ans的值
b'a'  #结果
>>>
文件操作 file operations

待续

  • 10
    点赞
  • 50
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值