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

标准类库-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,最后如下:

 


 

 

3. 例子 getche演示

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

 

import msvcrt

 

while True:

    ch = msvcrt.getche()

    

 

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

Python <wbr>标准类库-Windows特殊服务之msvcrt 

 

 

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

 

4. 例子 支持中文

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

 

import msvcrt

 

while True:

    ch = msvcrt.getwche()

    

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

Python <wbr>标准类库-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 <wbr>标准类库-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://www.cnblogs.com/shouke/p/10157515.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/252171.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

redis服务器学习一

一&#xff1a;什么是redis服务器 redis是一个key-value存储系统。和Memcached类似&#xff0c;它支持存储的value类型相对更多&#xff0c;包括string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hash&#xff08;哈希类型&#xff09;。这些数据类型都支…

java项目启动tomcat没报错,然后页面报404无法找到,重新编译后,出现以下状态...

严重: Exception sending context initialized event to listener instance of class org.springframework.web.context.ContextLoaderListenerorg.springframework.beans.factory.BeanCreationException: Error creating bean with name MapperScannerConfigurer defined in c…

相机与镜头常识

1.焦距&#xff08;FocalLength&#xff09;   焦距是从镜头的中心点到胶平面上所形成的清晰影像之间的距离。焦距的大小决定着视角的大小&#xff0c;焦距数值小&#xff0c;视角大&#xff0c;所观察的范围也大&#xff1b;焦距数值大&#xff0c;视角小&#xff0c;观察范…

企业云存储:为什么中大型企业偏爱自建私有云?

“上云&#xff1f;我们通常自建企业私有云。”9102年了&#xff0c;在云存储服务的选择上&#xff0c;中大型企业基本步调一致&#xff0c;统筹规划自建企业私有云。为什么中大型企业都偏爱自建企业私有云&#xff1f;一、长久的成本考量从账面上看&#xff0c;通常私有云初期…

递归就这么简单

递归介绍 本来预算此章节是继续写快速排序的&#xff0c;然而编写快速排序往往是递归来写的&#xff0c;并且递归可能不是那么好理解&#xff0c;于是就有了这篇文章。 在上面提到了递归这么一个词&#xff0c;递归在程序语言中简单的理解是&#xff1a;方法自己调用自己 递归其…

阿里云RPA(机器人流程自动化)干货系列之二:认识RPA(下)

2019独角兽企业重金招聘Python工程师标准>>> 导读&#xff1a;本文是阿里云RPA&#xff08;机器人流程自动化&#xff09;干货系列之二&#xff0c;主要介绍了RPA的发展齐纳经和主要使用场景有哪些&#xff0c;目前国内外主流的RPA厂商以及RPA的未来在哪。 一、RPA的…

Halocn OCR识别入门学习

一、建立OCR库 dev_close_window() read_image(Image,OCR) get_image_size(Image,Width,Hight) dev_open_window(0,0,Width,Hight,black,Window) dev_display(Image)*字符处理 rgb1_to_gray(Image,ImageGray) *鼠标画你要找的roi区域 draw_rectangle1(Window,Row1,Column1,Row…

ctsc2009 移民站选址

分析&#xff1a;非常非常好的一道题&#xff01; 首先需要对问题进行转化&#xff1a; 行列无关&#xff0c;对于行单独处理&#xff0c;对于列单独处理必然存在一个最优方案使得每一个新站与旧站重合.转化1很显然&#xff0c;对于转化2&#xff0c;是一类非常经典的“中位数问…

Jenkins 安装与使用--实例

參考了博客Jenkins master在windows上安装 Jenkins的主要功能是监视反复工作的运行&#xff0c;比如软件project的构建详细地&#xff1a; *软件的持续构建和測试 本质上提供了一个易于使用的持续集成系统。使得开发者更easy地将改变集成到project中。使得用户更easy获得一个…

Hadoop学习之路(九)HDFS深入理解

HDFS的优点和缺点 HDFS的优点 1、可构建在廉价机器上 通过多副本提高可靠性&#xff0c;提供了容错和恢复机制 服务器节点的宕机是常态 必须理性对象 2、高容错性 数据自动保存多个副本&#xff0c;副本丢失后&#xff0c;自动恢复 HDFS的核心设计思想&#xff1a; 分散均匀…

关于Unity中的声音管理模块(专题七)

声音的要素 1: 音频文件AudioClip2: 音源AudioSource;3: 耳朵AudioListener;//全局只能有一个4: 2D/3D音频;//2D只是简单地播放声音&#xff0c;3D可以根据距离衰减音量 怎样听到声音&#xff1a; 创建一个节点&#xff0c;挂载AudioSource组件&#xff0c;AudioSource组件关联…

ThreadLocal可能引起的内存泄露

threadlocal里面使用了一个存在弱引用的map,当释放掉threadlocal的强引用以后,map里面的value却没有被回收.而这块value永远不会被访问到了. 所以存在着内存泄露. 最好的做法是将调用threadlocal的remove方法. 在threadlocal的生命周期中,都存在这些引用. 看下图: 实线代表强引…

codevs 1576 最长严格上升子序列

题目链接&#xff1a;http://codevs.cn/problem/1576/题目描述 Description给一个数组a1, a2 ... an&#xff0c;找到最长的上升降子序列ab1<ab2< .. <abk&#xff0c;其中b1<b2<..bk。 输出长度即可。 输入描述 Input Description第一行&#xff0c;一个整数N。…

nginx服务器开启缓存、反向代理

一、反向代理配置 1、反向代理服务器配置如下 反向代理就是需要这一行proxy_pass来完成。当我们要访问后端web服务器的时候&#xff0c;我们只需要访问代理服务器就可以了&#xff0c;此时代理服务器就充当后端web服务器的角色。proxy_pass依赖的模块是&#xff1a; 至于后两行…

Halcon:Image、region、xld常用的处理

一、读取文件夹中的所有图片 list_files (C:/Users/fuping.liu/Desktop/槟榔有无头/有头, [files,follow_links], ImageFiles) tuple_regexp_select (ImageFiles, [\(tif|tiff|gif|bmp|jpg|jpeg|jp2|png|pcx|pgm|ppm|pbm|xwd|ima|hobj)$,ignore_case], ImageFiles)for Index :…

Halcon: 畸变矫正与标定(1)

1、 Halcon相机标定和图像矫正 对于相机采集的图片&#xff0c;会由于相机本身和透镜的影响产生形变&#xff0c;通常需要对相机进行标定&#xff0c;获取相机的内参或内外参&#xff0c;然后矫正其畸变。相机畸变主要分为径向畸变和切向畸变&#xff0c;其中径向畸变是由透…

算法入门经典 第三章

scanf 遇到tab或空格或换行符停下来1.例题2-1 7744问题 从数本身看 从个位数的数字看#include <iostream>#include<math.h>using namespace std; int main(){ for(int a1;a<9;a) { for(int b1;b<9;b) { int n1100*a11*b;//floor x 等于1的区间为[1,2),florr(…

Halcon :畸变矫正与标定(2)

相机标定1.相机标定是什么2.怎么使用halcon进行相机内外参标定&#xff1f; &#xff08;1&#xff09;搭建硬件1.**相机连好电脑&#xff0c;用相机厂家软件打开相机&#xff0c;检查一下相机是否正常。**2.**接下来使用halcon连接相机**&#xff08;2&#xff09;开始标定1.*…

Halcon:二维仿射变换实例探究

二维仿射变换&#xff0c;顾名思义就是在二维平面内&#xff0c;对对象进行平移、旋转、缩放等变换的行为&#xff08;当然还有其他的变换&#xff0c;这里仅论述这三种最常见的&#xff09;。 Halcon中进行仿射变换的常见步骤如下&#xff1a; ① 通过hom_mat2d_identity算子…

Halcon:手眼标定——眼在手外与眼在手上

为什么需要九点标定&#xff1f; 为了得到机械和相机的关系&#xff0c;就好比人的手和眼的关系。我们用手将一个物体放到空间的一个位置&#xff0c;用眼看到这个物体&#xff0c;这也存在两个坐标系&#xff0c;一个是手所在的运动空间的坐标系&#xff0c;一个是视网膜上成像…