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

 

by:授客 QQ:1033553122

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

测试环境

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,最后如下:

3. 例子 getche演示

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

import msvcrt

while True:

ch = msvcrt.getche()

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

 

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

4. 例子 支持中文

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

import msvcrt

while True:

ch = msvcrt.getwche()

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

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键,结果输出如下

ord函数

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

。例如,给定ord('a') 返回整数 97,ord('\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)

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

msvcrt.ungetwch(unicode_char)

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

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

转载于:https://www.cnblogs.com/shouke/p/10157515.html

Python 标准类库-Windows特殊服务之msvcrt相关推荐

  1. Python标准库介绍

    1. 关于Python标准库 众所周知,Python是一个依赖强大的组件库完成对应功能的语言,为了便捷实现各项功能,前辈大牛们打造了多种多样的工具库公开提供给大众使用,而越来越多的库已经因为使用的广泛 ...

  2. python第三方库排行-140种Python标准库、第三方库和外部工具

    导读:Python数据工具箱涵盖从数据源到数据可视化的完整流程中涉及到的常用库.函数和外部工具.其中既有Python内置函数和标准库,又有第三方库和工具. 这些库可用于文件读写.网络抓取和解析.数据连 ...

  3. 以下属于python标准库的选项是-Python 标准库一览(Python进阶学习)

    转自:http://blog.csdn.net/jurbo/article/details/52334345 写这个的起因是,还是因为在做Python challenge的时候,有的时候想解决问题,连 ...

  4. 140种Python标准库、第三方库和外部工具都有了

    导读:Python数据工具箱涵盖从数据源到数据可视化的完整流程中涉及到的常用库.函数和外部工具.其中既有Python内置函数和标准库,又有第三方库和工具. 这些库可用于文件读写.网络抓取和解析.数据连 ...

  5. cassandra可视化工具_耗时1个月整理!160种Python标准库、第三方库和外部工具都有了...

    耗时1个月整理!160种Python标准库.第三方库和外部工具都有了 北京尚学堂 2019-12-09 14:59:15 Python数据工具箱涵盖从数据源到数据可视化的完整流程中涉及到的常用库.函数 ...

  6. [转载] 140种Python标准库、第三方库和外部工具

    参考链接: Python | 使用openpyxl在Excel文件中进行算术运算 这些库可用于文件读写.网络抓取和解析.数据连接.数清洗转换.数据计算和统计分析.图像和视频处理.音频处理.数据挖掘/机 ...

  7. 【转】140种Python标准库、第三方库和外部工具

    导读:Python数据工具箱涵盖从数据源到数据可视化的完整流程中涉及到的常用库.函数和外部工具.其中既有Python内置函数和标准库,又有第三方库和工具. 这些库可用于文件读写.网络抓取和解析.数据连 ...

  8. 吐血整理!140种Python标准库、第三方库和外部工具都有了

    导读:大家好,我是涛哥.Python数据工具箱涵盖从数据源到数据可视化的完整流程中涉及到的常用库.函数和外部工具.其中既有Python内置函数和标准库,又有第三方库和工具. 这些库可用于文件读写.网络 ...

  9. 文末福利 | 吐血整理!140种Python标准库、第三方库和外部工具都有了

    导读:Python数据工具箱涵盖从数据源到数据可视化的完整流程中涉及到的常用库.函数和外部工具.其中既有Python内置函数和标准库,又有第三方库和工具. 这些库可用于文件读写.网络抓取和解析.数据连 ...

最新文章

  1. 项目管理5大过程组,42个过程一句话讲解
  2. 提高SQLite每秒INSERT的性能?
  3. 企鹅java游戏下载安装_企鹅企鹅生活安卓版游戏下载|企鹅企鹅生活手游下载v1.6.1-乐游网安卓下载...
  4. oracle 表复制操作
  5. ssh 配置文件中 maxsessions 与 MaxStartups
  6. [学习指南]运动是基于4412嵌入式技术开发板学习步骤
  7. java学习之流程控制
  8. python中pass的使用_pass语句如何在Python项目中使用
  9. bzoj 3373: [Usaco2004 Mar]Lying Livestock 说谎的牲畜
  10. day3-python之函数初识(二)
  11. js实现二级联动菜单
  12. 十大排序算法——桶排序(C语言)
  13. Eclipse中添加外部Web浏览器
  14. 蓝桥杯 历年试题 矩阵翻硬币
  15. JavaScript核心之Document对象概述(document的属性,方法,事件)
  16. 积极适应大数据时代要求 提升科技化和智能化水平
  17. 外卖店优先级(模拟)
  18. 编译和执行区别 c语言,C语言编译和执行分析
  19. 华硕服务器怎么装win7系统教程视频,华硕电脑离线重装win7系统详细教程
  20. C# 9.0新特性详解系列之五:记录(record)和with表达式

热门文章

  1. mac中安装activeMQ
  2. watson软件使用_使用Watson Assistant进行多语言管理
  3. 多目标分类的混淆矩阵_用于目标检测的混淆矩阵
  4. 自动填充数据新增测试数据_用测试数据填充员工数据库
  5. pandas数据处理 代码_使用Pandas方法链接提高代码可读性
  6. Makefile学习资料及书籍推荐
  7. missing legacy device support
  8. jquery获取html代码怎么写,jQuery从html代码中获取对应标签的写法
  9. python可以做二维码吗_Python制作二维码,并且可以添加logo
  10. 电脑工具栏怎么调整到下面_雷电模拟器4.0怎么玩召唤与合成 一键下载轻松游玩 - 工具软件...