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.pswp.cn/news/252171.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/252171.shtml
英文地址,請注明出處:http://en.pswp.cn/news/252171.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Spring Cloud Gateway 路由轉發之After(Before)路由斷言工廠使用

前言 本文旨在介紹After&#xff08;Before&#xff09;路由斷言工廠使用&#xff0c;以此類推可以使用其他路由斷言工廠 案例 1、概念 網關簡單的說就是提供一個對外統一的API入口和出口&#xff0c;統管企業對外的所有API出口。一般來說&#xff0c;網關對外暴露的URL或者接口…

redis服務器學習一

一&#xff1a;什么是redis服務器 redis是一個key-value存儲系統。和Memcached類似&#xff0c;它支持存儲的value類型相對更多&#xff0c;包括string(字符串)、list(鏈表)、set(集合)、zset(sorted set --有序集合)和hash&#xff08;哈希類型&#xff09;。這些數據類型都支…

RichTextBox 改變每行的字體顏色

RichTextBox 改變每行的字體顏色 1、新建方法AppendTextColorful(this RichTextBox rtBox, string text, Color color, bool addNewLine) 2、調用方法AppendTextColorful(this RichTextBox rtBox, string text, Color color, bool addNewLine) public stat…

Android使用token維持登陸狀態的方法

什么是token token&#xff08;令牌&#xff09;是一串唯一的字符串&#xff0c;通常由服務端生成&#xff0c;在注冊完成時返回給客戶端&#xff0c;用來標識此用戶&#xff0c;客戶端將此字符串存儲在本地。在以后的網絡請求時&#xff0c;客戶端先查詢本地的token&#xff0…

阿里云RPA專有云產品文檔集合

請訪問以下鏈接&#xff1a; https://www.yuque.com/aliyun_rpa/

利用相機SDK采相轉換至HImage

來源于http://blog.sina.com.cn/s/blog_d40acd530102xndm.html Halcon采相功能非常強大&#xff0c;基本支持各大品牌以及各個通信接口的相機&#xff0c;并且Halcon提供為相機廠商提供了制作Halcon相機接口庫的辦法&#xff0c;總之Halcon基本可以直接連接所有工業相機。 但…

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…

3.12PMP試題每日一題

哪一個是組織過程資產的事例&#xff1a;A、項目管理信息系統B、配置管理姿勢庫C、配置管理系統D、共享系統和云計算 作者&#xff1a;Tracy19890201&#xff08;同微信號&#xff09;轉載于:https://blog.51cto.com/13554215/2361982

相機與鏡頭常識

1.焦距&#xff08;FocalLength&#xff09;   焦距是從鏡頭的中心點到膠平面上所形成的清晰影像之間的距離。焦距的大小決定著視角的大小&#xff0c;焦距數值小&#xff0c;視角大&#xff0c;所觀察的范圍也大&#xff1b;焦距數值大&#xff0c;視角小&#xff0c;觀察范…

vsftpd的安裝

簡介 vsftpd是一個免費的開源的ftp服務器軟件&#xff1b; 特點 小巧輕快&#xff0c;安全易用&#xff0c;支持虛擬用戶、支持帶寬限制等功能&#xff1b; 安裝 執行 yum -y install vsftpd 創建虛擬用戶(注意權限問題(chmod)&#xff0c;這個要根據情況來定) 選擇在根或用戶目…

halcon模板匹配測試流程

*1、創建模板&#xff08;獲取要做模板區域的圖像&#xff09; *create_shape_model (ImageReduced, 4, 0, rad(360), rad(1), none, use_polarity, 30, 10, ModelID) *2、獲取形狀模型---第二步&#xff08;為了顯示找的的模板&#xff09; *get_shape_model_contours (…

企業云存儲:為什么中大型企業偏愛自建私有云?

“上云&#xff1f;我們通常自建企業私有云。”9102年了&#xff0c;在云存儲服務的選擇上&#xff0c;中大型企業基本步調一致&#xff0c;統籌規劃自建企業私有云。為什么中大型企業都偏愛自建企業私有云&#xff1f;一、長久的成本考量從賬面上看&#xff0c;通常私有云初期…

ETL作業調度軟件TASKCTL自定義擴展作業類型插件安裝

TASKCTL批量自動化調度作業類型擴展插件的安裝方法如下幾種&#xff1a; 1、 直接覆蓋法 直接覆蓋法的意思就是將自定義擴展好的插件&#xff0c;通常是一個shell腳本&#xff0c;上傳至后臺調度核心服務上&#xff0c;然后修改后臺任務類型的XML元素配置文件即可。 注意&#…

遞歸就這么簡單

遞歸介紹 本來預算此章節是繼續寫快速排序的&#xff0c;然而編寫快速排序往往是遞歸來寫的&#xff0c;并且遞歸可能不是那么好理解&#xff0c;于是就有了這篇文章。 在上面提到了遞歸這么一個詞&#xff0c;遞歸在程序語言中簡單的理解是&#xff1a;方法自己調用自己 遞歸其…

阿里云RPA(機器人流程自動化)干貨系列之二:認識RPA(下)

2019獨角獸企業重金招聘Python工程師標準>>> 導讀&#xff1a;本文是阿里云RPA&#xff08;機器人流程自動化&#xff09;干貨系列之二&#xff0c;主要介紹了RPA的發展齊納經和主要使用場景有哪些&#xff0c;目前國內外主流的RPA廠商以及RPA的未來在哪。 一、RPA的…

C# 圖片的讀取

//圖片轉成二進制public byte[] GetPictureData(string imagepath){/**/根據圖片文件的路徑使用文件流打開&#xff0c;并保存為byte[] FileStream FileStream new FileStream(imagepath, FileMode.Open);byte[] byData new byte[FileStream.Length];FileStream.Read(byData,…

SDOI2010 地精部落

題目描述 傳說很久以前&#xff0c;大地上居住著一種神秘的生物&#xff1a;地精。 地精喜歡住在連綿不絕的山脈中。具體地說&#xff0c;一座長度為N的山脈H可分為從左到右的N段&#xff0c;每段有一個[b][u]獨一無二[/u][/b]的高度Hi&#xff0c;其中Hi是1到N之間的正整數。 …

Codechef Yet another cute girl

題意大概就是讓你求一下[L,R]中的約數個數是素數的數的個數。 其中1<L<R<1e12,R-L<1e6. 然后我寫了兩種做法&#xff0c;第一種是可以直接搞出來L-R的約數個數&#xff0c;然后直接統計一下就好了。 這個的復雜度大致是 O((R-L) * log(R-L)) 第二種就是需要先發現滿…

簡單弄一個-個人主頁

--- 整理一下已經發表的文章 JAVA基礎 java基礎數據結構之-紅黑樹(插入)java基礎數據結構之-紅黑樹(刪除)了解一下jdk動態代理的本質了解一下cglib動態代理的本質SpringBoot源碼解析 前言&#xff1a;閱讀springboot源碼之前&#xff0c;最好對spring源碼有一定的了解&#xff…

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…