Python 标准类库-Windows特殊服务之msvcrt「建议收藏」

Python 标准类库-Windows特殊服务之msvcrt「建议收藏」标准类库-Windows特殊服务之msvcrtby:授客QQ:1033553122广告:出售自研自动化小平台(无需编码也可用),有需要请联系测试环境win764位Python3.46

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

标准类库-Windows特殊服务之msvcrt

 

by:授客 QQ1033553122

广告:出售自研自动化小平台(无需编码也可用),有需要请联系

 

测试环境

win7 64

Python 3.4 64bit

 

控制台I/O

1. 例子 getch演示

假设 1.py脚本内容如下:

 

#-*- coding:utf-8 -*-

 

import msvcrt

 

while True:

    ch = msvcrt.getch()

 print(ch)

    

windows cmd控制台运行脚本

E:\>cd /d E:\

E:\>python 1.py

b’1′

b’\r’

b’\x03′

 

 

如上,运行程序后,等待输入,先后输入1, 回车,按Ctrl+c,按顺序分别输出以上带背景色部分的内容。

 

注意:实践发现,有些情况下,输入中文,print(ch)会导致程序直接退出,解决方法就是使用宽字符版的方法。

 

2. putch演示

#-*- coding:utf-8 -*-

 

import msvcrt

 

while True:

    ch = msvcrt.getch()

    msvcrt.putch(ch)

 

如上,运行程序后,等待输入,先后输入1, 回车,按Ctrl+c,先是展示1,然后还是1,最后如下:

Python 标准类库-Windows特殊服务之msvcrt「建议收藏」

 

 

 

3. 例子 getche演示

#-*- coding:utf-8 -*-

 

import msvcrt

 

while True:

    ch = msvcrt.getche()

    

 

程序运行后,先后输入 1, 按 Ctrl + c键,中文输入法下输入 我们, 结果输出如下

 

 

对比例子1,例子2,展示更为友好了,但是依旧不足的是中文没法正常显示。解决方案,使用getwchgetwche函数。

 

4. 例子 支持中文

#-*- coding:utf-8 -*-

 

import msvcrt

 

while True:

    ch = msvcrt.getwche()

    

程序运行后,先后输入 1, 按 Ctrl + c键,中文输入法下输入 我们, 结果输出如下

Python 标准类库-Windows特殊服务之msvcrt「建议收藏」

 

 

 

 

5. 例子 循环读取

#-*- coding:utf-8 -*-

 

import msvcrt

 

while True:

    ch = msvcrt.getch()

    msvcrt.putch(ch)

msvcrt.ungetch(ch)

 

程序运行后,先后输入 1,结果控制台不断的输出1

 

6. 例子 做输入判断

 

#-*- coding:utf-8 -*-

 

import msvcrt

 

while True:

    ch = msvcrt.getch()

    print(ch)

    if ch == b’1′:

        print(‘get it’)

    elif ch == b’\x03′:

        print(‘get it too’)

 

程序运行后,先后输入 1, 按 Ctrl + c键,结果输出如下

b’1′

get it

b’\x03′

get it too

 

对比实验

当替换为宽字符版的getwch后,就不好按之前的方式判断了,解决方案:采用ord函数。

 

#-*- coding:utf-8 -*-

 

import msvcrt

 

while True:

    ch = msvcrt.getwch()

    print(ch)

    if ch == ‘1’:

        print(‘get it’)

    elif ord(ch) == 3:

        print(‘get it too’)

 

程序运行后,先后输入 1, 按 Ctrl + c键,结果输出如下

Python 标准类库-Windows特殊服务之msvcrt「建议收藏」

 

 

 

ord函数

给一个Unicode字符,返回该字符的Unicode数字代码

。例如,给定ord(‘a’) 返回整数 97ord(‘\u2020’) 返回 8224。同chr相反。

 

 

函数解说

msvcrt.getch()

读取一个由键盘输入的单个字符,并返回该字符的字节字符串表示(Read a keypress and return the resulting character as a byte string),但不会回显在控制台。如果没有按键输入,则会一直等待输入。

 

msvcrt.getwch()

宽字符版getch,返回Unicode的值。

 

msvcrt.getche()

类似,getch,但是如果按键输入代表可打印字符,会回显在控制台。

 

msvcrt.getwche()

宽字符版getche,返回Unicode值。

 

 

msvcrt.putch(char)

打印字节字符到控制台,不缓冲。

 

msvcrt.putwch(unicode_char)

宽字符版的putch,接收Unicode

 

msvcrt.ungetch(char)

把字节字符回写到控制台缓冲区,将成为getchgetche下一次读取的字符。

 

msvcrt.ungetwch(unicode_char)

宽字符版的ungetch,接收Unicode值。

 

 

更多相关资料,请查看官方文档

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/167357.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 动态库与静态库优缺点比较分析_c静态库和动态库的区别

    动态库与静态库优缺点比较分析_c静态库和动态库的区别动态库与静态库优缺点比较(2012-10-18 15:31)    我们在编写一个C语言程序的时候,经常会遇到好多重复或常用的部分,如果每次都重新编写固然是可以的,不过那样会大大降低工作效率,并且影响代码的可读性,更不利于后期的代码维护。我们可以把他们制作成相应的功能函数,使用时直接调用就会很方便,还可以进行后期的功能升级。       例如我要在一段代码中多次交换两个变

    2022年9月29日
    5
  • 如何简便的解决虚拟机里软件过期问题「建议收藏」

    如何简便的解决虚拟机里软件过期问题「建议收藏」如果你的虚拟机里安装了有期限软件供学习使用,在过期后只能先修改其宿主机操作系统的系统时间才能使用,很不方便。如何简便的解决此过期问题呢?   感谢网友的分享,找到通过修改VMWare虚拟机配置参数的方式,固化每次启动虚拟机时间为国定时间,并禁止其与互联网同步时间,让虚拟机系统一直生活在2014年3月份。具体方法如下:   如果你在vmware(本案例为VMWarePlayer6

    2022年9月14日
    2
  • QMap简单用法

    QMap简单用法QMap提供了一个从类项为key的键到类项为T的直的映射,通常所存储的数据类型是一个键对应一个直,并且按照Key的次序存储数据,这个类也支持一键多值的情况,用类QMultiMapQHash具有和QMap几乎完全一样的APi,此类维护这一张哈希表,表的大小和数据项是自适应的,QHash是以任意的顺序住址他的数据,,当然了他也是可以支持一键多值的,QMultiHash两种之间的区别是:

    2022年5月30日
    47
  • mac avicate15 获取码兑换激活码_最新在线免费激活

    (mac avicate15 获取码兑换激活码)2021最新分享一个能用的的激活码出来,希望能帮到需要激活的朋友。目前这个是能用的,但是用的人多了之后也会失效,会不定时更新的,大家持续关注此网站~https://javaforall.net/100143.htmlIntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,上面是详细链接哦~40…

    2022年4月2日
    78
  • SpringMVC 工作原理

    SpringMVC 工作原理1.客户端请求提交到DispatcherServlet2.由DispatcherServlet控制器查询一个或多个HandlerMapping,找到处理请求的Controller3.DispatcherServlet将请求提交到Controller4.Controller调用业务逻辑处理后,返回ModelAndView5.DispatcherServlet查询一个或多个ViewResoler视图解析器,找到ModelAndView指定的视图,并将结果显示到客户

    2022年5月14日
    39
  • linux终端定时器实验报告,定时器实验报告.doc

    linux终端定时器实验报告,定时器实验报告.doc定时器实验报告实验六 定时器/计数器一、实验目的⒈ 学会8253芯片和微机接口的原理和方法。掌握8253定时器/计数器的工作方式和编程原理。二、实验内容用8253的0通道工作在方式3,产生方波。三、实验接线图四、编程指南⒈ 8253芯片介绍8253是一种可编程定时/计数器,有三个十六位计数器,其计数频率范围为0-2MHz,用+5V单电源供电。8253的功能用途:延时中断 实时时钟可编程频率发…

    2022年7月26日
    14

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号