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.fdopen()
的参数来创建一个文件对象。引发 审计事件
msvcrt.open_osfhandle
,参数为handle
、flags
。
控制台 I/O¶
- msvcrt.kbhit()¶
如果有一个按键等待读取,则返回
True
。
- msvcrt.getch()¶
读取一个按键并以字节字符串的形式返回结果字符。不会向控制台回显任何内容。如果按键尚未可用,此调用将阻塞,但不会等待按下 Enter。如果按下的键是特殊功能键,则将返回
'\000'
或'\xe0'
;下一次调用将返回键码。无法使用此函数读取 Control-C 按键。
- msvcrt.putch(char)¶
将字节字符串 char 打印到控制台,不进行缓冲。
其他函数¶
- msvcrt.CRT_ASSEMBLY_VERSION¶
CRT 程序集版本,来自
crtassem.h
头文件。
- msvcrt.VC_ASSEMBLY_PUBLICKEYTOKEN¶
VC 程序集公钥令牌,来自
crtassem.h
头文件。
- msvcrt.LIBRARIES_ASSEMBLY_NAME_PREFIX¶
库程序集名称前缀,来自
crtassem.h
头文件。