日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

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

發布時間:2023/12/13 windows 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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鍵,中文輸入法下輸入 我們, 結果輸出如下

?

?

?

對比例子1,例子2,展示更為友好了,但是依舊不足的是中文沒法正常顯示。解決方案,使用getwchgetwche函數。

?

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') 返回整數?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

創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的Python 标准类库-Windows特殊服务之msvcrt的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。