msvcrt
— 來自 MS VC++ 執行時的實用例程¶
這些函式提供了對 Windows 平臺上一些實用功能的訪問。一些更高級別的模組使用這些函式來構建其服務的 Windows 實現。例如,getpass
模組在其 getpass()
函式的實現中使用了此模組。
有關這些函式的更多文件,請參閱平臺 API 文件。
該模組實現了控制檯 I/O API 的普通字元和寬字元變體。普通 API 僅處理 ASCII 字元,對於國際化應用程式的用途有限。應儘可能使用寬字元 API。
檔案操作¶
- msvcrt.locking(fd, mode, nbytes)¶
根據 C 執行時的檔案描述符 fd 鎖定檔案的一部分。失敗時引發
OSError
。檔案的鎖定區域從當前檔案位置開始延伸 nbytes 位元組,並可能超出檔案末尾。mode 必須是下面列出的LK_*
常量之一。檔案中可以同時鎖定多個區域,但不能重疊。相鄰區域不會合並;它們必須單獨解鎖。使用引數
fd
、mode
、nbytes
引發 審計事件msvcrt.locking
。
- msvcrt.LK_UNLCK¶
解鎖指定的位元組,這些位元組必須先前已鎖定。
- msvcrt.setmode(fd, flags)¶
設定檔案描述符 fd 的行尾轉換模式。要將其設定為文字模式,flags 應為
os.O_TEXT
;對於二進位制模式,應為os.O_BINARY
。
- msvcrt.open_osfhandle(handle, flags)¶
從檔案控制代碼 handle 建立 C 執行時檔案描述符。flags 引數應為
os.O_APPEND
、os.O_RDONLY
、os.O_TEXT
和os.O_NOINHERIT
的按位 OR。返回的檔案描述符可以用作os.fdopen()
的引數以建立檔案物件。預設情況下,檔案描述符是可繼承的。傳遞
os.O_NOINHERIT
標誌使其不可繼承。使用引數
handle
、flags
引發 審計事件msvcrt.open_osfhandle
。
控制檯 I/O¶
- msvcrt.kbhit()¶
如果有一個按鍵等待讀取,則返回非零值。否則,返回 0。
- msvcrt.getch()¶
讀取一個按鍵並返回結果字元作為位元組字串。控制檯上不會回顯任何內容。如果按鍵尚不可用,此呼叫將阻塞,但不會等待按下 Enter 鍵。如果按下的鍵是特殊功能鍵,則此函式將返回
'\000'
或'\xe0'
;下一個呼叫將返回鍵程式碼。無法使用此函式讀取 Control-C 按鍵。
- msvcrt.putch(char)¶
將位元組字串 char 列印到控制檯,不進行緩衝。
其他函式¶
- msvcrt.set_error_mode(mode)¶
更改 C 執行時為可能結束程式的錯誤寫入錯誤訊息的位置。 mode 必須是下面列出的
OUT_*
常量之一或REPORT_ERRMODE
。 如果發生錯誤,則返回舊設定或 -1。 僅在 Python 的除錯版本 中可用。
- msvcrt.OUT_TO_DEFAULT¶
錯誤接收器由應用程式的型別確定。 僅在 Python 的除錯版本 中可用。
- msvcrt.OUT_TO_STDERR¶
錯誤接收器是標準錯誤。 僅在 Python 的除錯版本 中可用。
- msvcrt.OUT_TO_MSGBOX¶
錯誤接收器是一個訊息框。 僅在 Python 的除錯版本 中可用。
- msvcrt.REPORT_ERRMODE¶
報告當前的錯誤模式值。 僅在 Python 的除錯版本 中可用。
- msvcrt.CrtSetReportMode(type, mode)¶
指定 MS VC++ 執行時中
_CrtDbgReport()
生成的特定報告型別的目標位置。 type 必須是下面列出的CRT_*
常量之一。 mode 必須是下面列出的CRTDBG_*
常量之一。 僅在 Python 的除錯版本 中可用。
- msvcrt.CrtSetReportFile(type, file)¶
在使用
CrtSetReportMode()
指定CRTDBG_MODE_FILE
後,您可以指定接收訊息文字的檔案控制代碼。 type 必須是下面列出的CRT_*
常量之一。 file 應該是您想要指定的檔案控制代碼。 僅在 Python 的除錯版本 中可用。
- msvcrt.CRT_WARN¶
不需要立即關注的警告、訊息和資訊。
- msvcrt.CRT_ERROR¶
錯誤、無法恢復的問題以及需要立即關注的問題。
- msvcrt.CRT_ASSERT¶
斷言失敗。
- msvcrt.CRTDBG_MODE_DEBUG¶
將訊息寫入偵錯程式的輸出視窗。
- msvcrt.CRTDBG_MODE_FILE¶
將訊息寫入使用者提供的檔案控制代碼。 應呼叫
CrtSetReportFile()
來定義要用作目標位置的特定檔案或流。
- msvcrt.CRTDBG_MODE_WNDW¶
建立一個訊息框來顯示訊息以及
Abort
、Retry
和Ignore
按鈕。
- msvcrt.CRTDBG_REPORT_MODE¶
返回指定 type 的當前 mode。
- msvcrt.CRT_ASSEMBLY_VERSION¶
來自
crtassem.h
標頭檔案的 CRT 程式集版本。
- msvcrt.VC_ASSEMBLY_PUBLICKEYTOKEN¶
來自
crtassem.h
標頭檔案的 VC 程式集公鑰令牌。
- msvcrt.LIBRARIES_ASSEMBLY_NAME_PREFIX¶
來自
crtassem.h
標頭檔案的庫程式集名稱字首。