msvcrt — 来自 MS VC++ 运行时的有用例程 — Python 文档
来自菜鸟教程
Python/docs/3.9/library/msvcrt
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.LK_LOCK
msvcrt.LK_RLCK
- 锁定指定的字节。 如果无法锁定字节,程序会在 1 秒后立即再次尝试。 如果在 10 次尝试后无法锁定字节,则会引发 OSError。
- msvcrt.LK_NBLCK
msvcrt.LK_NBRLCK
- 锁定指定的字节。 如果无法锁定字节,则会引发 OSError。
- msvcrt.LK_UNLCK
- 解锁指定的字节,这些字节以前必须被锁定。
- msvcrt.setmode(fd, flags)
- 为文件描述符 fd 设置行尾转换模式。 要将其设置为文本模式,flags 应为 os.O_TEXT; 对于二进制,它应该是 os.O_BINARY。
- msvcrt.open_osfhandle(handle, flags)
- 从文件句柄 句柄 创建 C 运行时文件描述符。 flags 参数应该是 os.O_APPEND、os.O_RDONLY 和 os.O_TEXT 的按位 OR。 返回的文件描述符可用作 os.fdopen() 的参数以创建文件对象。
- msvcrt.get_osfhandle(fd)
- 返回文件描述符 fd 的文件句柄。 如果 fd 未被识别,则引发 OSError。
控制台输入/输出
- msvcrt.kbhit()
- 如果按键正在等待读取,则返回
True
。
- msvcrt.getch()
- 读取按键并将结果字符作为字节字符串返回。 控制台没有回显任何内容。 如果按键不可用,此调用将阻塞,但不会等待按下 Enter。 如果按下的键是特殊功能键,则返回
'\000'
或'\xe0'
; 下一次调用将返回键码。 使用此功能无法读取 Control-C 按键。
- msvcrt.getwch()
- getch() 的宽字符变体,返回 Unicode 值。
- msvcrt.getche()
- 与 getch() 类似,但如果它代表可打印字符,则按键将被回显。
- msvcrt.getwche()
- getche() 的宽字符变体,返回 Unicode 值。
- msvcrt.putch(char)
- 不缓冲地将字节串 char 打印到控制台。
- msvcrt.putwch(unicode_char)
- putch() 的宽字符变体,接受 Unicode 值。
- msvcrt.ungetwch(unicode_char)
- ungetch() 的宽字符变体,接受 Unicode 值。