掃二維碼與項目經(jīng)理溝通
我們在微信上24小時期待你的聲音
解答本文疑問/技術(shù)咨詢/運營咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流
這些函數(shù)提供了對 Windows 平臺上一些有用功能的訪問。一些更高級別的模塊使用這些函數(shù)來構(gòu)建其服務(wù)的 Windows 實現(xiàn)。 例如, getpass 模塊在實現(xiàn) getpass() 函數(shù)時使用了這些函數(shù)。

關(guān)于這些函數(shù)的更多信息可以在平臺 API 文檔中找到。
該模塊實現(xiàn)了控制臺 I/O API 的普通和寬字符變體。普通的 API 只處理ASCII字符,國際化應(yīng)用受限。應(yīng)該盡可能地使用寬字符 API 。
在 3.3 版更改: 此模塊中過去會引發(fā) IOError 的操作現(xiàn)在將引發(fā) OSError。
msvcrt.locking(fd, mode, nbytes)
基于文件描述符 fd 從 C 運行時鎖定文件的某一部分。 失敗時引發(fā) OSError。 鎖定的文件區(qū)域從當(dāng)前文件位置開始擴展 nbytes 個字節(jié),并可能持續(xù)到超出文件末尾。 mode 必須為下面列出的 LK_* 之一。 一個文件中的多個區(qū)域可以被同時鎖定,但是不能重疊。 相鄰區(qū)域不會被合并;它們必須單獨被解鎖。
引發(fā)一個 審計事件 msvcrt.locking,附帶參數(shù) fd, mode, nbytes。
msvcrt.LK_LOCK
msvcrt.LK_RLCK
鎖定指定的字節(jié)數(shù)據(jù)。 如果字節(jié)數(shù)據(jù)無法被鎖定,程序會在 1 秒之后立即重試。 如果在 10 次嘗試后字節(jié)數(shù)據(jù)仍無法被鎖定,則會引發(fā) OSError。
msvcrt.LK_NBLCK
msvcrt.LK_NBRLCK
鎖定指定的字節(jié)數(shù)據(jù)。 如果字節(jié)數(shù)據(jù)無法被鎖定,則會引發(fā) OSError。
msvcrt.LK_UNLCK
解鎖指定的字節(jié)數(shù)據(jù),該對象必須在之前被鎖定。
msvcrt.setmode(fd, flags)
設(shè)置文件描述符 fd 的行結(jié)束符轉(zhuǎn)寫模式。 要將其設(shè)為文本模式,則 flags 應(yīng)當(dāng)為 os.O_TEXT;設(shè)為二進制模式,則應(yīng)當(dāng)為 os.O_BINARY。
msvcrt.open_osfhandle(handle, flags)
基于文件句柄 handle 創(chuàng)建一個 C 運行時文件描述符。 flags 形參應(yīng)當(dāng) os.O_APPEND, os.O_RDONLY 和 os.O_TEXT 按位 OR 的結(jié)果。 返回的文件描述符可以被用作 os.fdopen() 的形參以創(chuàng)建一個文件對象。
引發(fā)一個 審計事件 msvcrt.open_osfhandle,附帶參數(shù) handle, flags。
msvcrt.get_osfhandle(fd)
返回文件描述符 fd 的文件句柄。 如果 fd 不能被識別則會引發(fā) OSError。
引發(fā)一個 審計事件 msvcrt.get_osfhandle,附帶參數(shù) fd。
msvcrt.kbhit()
如果有某個按鍵正在等待被讀取則返回 True。
msvcrt.getch()
讀取一個按鍵并將結(jié)果字符返回為一個字節(jié)串。 不會有內(nèi)容回顯到縫制臺。 如果還沒有任何鍵被按下此調(diào)用將會阻塞,但它將不會等待 Enter 被按下。 如果按下的鍵是一個特殊功能鍵,此函數(shù)將返回 '\000' 或 '\xe0';下一次調(diào)用將返回鍵代碼。 Control-C 按鈕無法使用此函數(shù)來讀取。
msvcrt.getwch()
getch() 的寬字符版本,返回一個 Unicode 值。
msvcrt.getche()
類似于 getch(),但按鍵如果表示一個可打印字符則它將被回顯。
msvcrt.getwche()
getche() 的寬字符版本,返回一個 Unicode 值。
msvcrt.putch(char)
將字符串 char 打印到終端,不使用緩沖區(qū)。
msvcrt.putwch(unicode_char)
putch() 的寬字符版本,接受一個 Unicode 值。
msvcrt.ungetch(char)
使得字節(jié)串 char 被“推回”終端緩沖區(qū);它將是被 getch() 或 getche() 讀取的下一個字符。
msvcrt.ungetwch(unicode_char)
ungetch() 的寬字符版本,接受一個 Unicode 值。
msvcrt.heapmin()
強制 malloc() 堆清空自身并將未使用的塊返回給操作系統(tǒng)。 失敗時,這將引發(fā) OSError。

我們在微信上24小時期待你的聲音
解答本文疑問/技術(shù)咨詢/運營咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流