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_*
常量之一。文件的多个区域可以同时锁定,但不能重叠。相邻区域不会合并;它们必须单独解锁。引发一个 审计事件
msvcrt.locking
,参数为fd
、mode
、nbytes
。
- 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
的按位或。返回的文件描述符可用作os.fdopen()
的参数来创建文件对象。文件描述符默认可继承。传入
os.O_NOINHERIT
标志可使其不可继承。引发一个 审计事件
msvcrt.open_osfhandle
,参数为handle
、flags
。
控制台 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¶
CRT 汇编版本,来自
crtassem.h
头文件。
- msvcrt.VC_ASSEMBLY_PUBLICKEYTOKEN¶
VC 汇编公钥令牌,来自
crtassem.h
头文件。
- msvcrt.LIBRARIES_ASSEMBLY_NAME_PREFIX¶
库汇编名称前缀,来自
crtassem.h
头文件。