msvcrt
msvcrt - MS VC ++运行时的有用例程
这些功能可以访问Windows平台上的一些有用的功能。一些更高级别的模块使用这些函数来构建其服务的Windows实现。例如,该getpass
模块在该getpass()
函数的实现中使用它。
有关这些功能的更多文档可以在Platform API文档中找到。
该模块实现控制台I / O API的常规和宽字符变体。普通的API只处理ASCII字符,对于国际化应用程序的使用有限。应尽可能使用宽字符API。
1.文件操作
msvcrt.locking(fd, mode, nbytes)
基于C运行时的文件描述符fd
锁定文件的一部分。IOError
失败时提高。文件的锁定区域从当前文件位置延伸nbytes
字节,并可能会延续到文件末尾。模式
必须是LK_*
下面列出的常量之一。文件中的多个区域可能同时被锁定,但可能不会重叠。相邻区域不合并; 他们必须单独解锁。
msvcrt.LK_LOCKmsvcrt.LK_RLCK
锁定指定的字节。如果字节无法锁定,程序会在1秒后立即再次尝试。如果在尝试10次后,字节不能被锁定,则会引发IOError
。
msvcrt.LK_NBLCKmsvcrt.LK_NBRLCK
锁定指定的字节。如果字节不能被锁定,则引发IOError
。
msvcrt.LK_UNLCK
解锁必须先前锁定的指定字节。
msvcrt.setmode(fd, flags)
设置文件描述符fd
的行结束转换模式。要将其设置为文本模式,标志
应该是os.O_TEXT
; 对于二进制,它应该是os.O_BINARY
。
msvcrt.open_osfhandle(handle, flags)
从文件句柄句柄
创建一个C运行时文件描述符。该标志
参数应该是按位OR的os.O_APPEND
,os.O_RDONLY
和os.O_TEXT
。返回的文件描述符可以用作os.fdopen()
创建文件对象的参数。
msvcrt.get_osfhandle(fd)
返回文件描述符fd
的文件句柄
。如果fd
无法识别则引发IOError
。
2. I / O控制台
msvcrt.kbhit()
如果按键等待读取,则返回true。
msvcrt.getch()
阅读按键并返回结果字符。没有任何东西被回应到控制台。如果按键不可用,此呼叫将被阻止,但不会等待Enter
按下。如果按下的键是特殊功能键,则返回'\000'
或'\xe0'
; 下一次调用将返回键码。该Control-C
按键无法使用该功能来读取。
msvcrt.getwch()
宽字符变体getch()
,返回一个Unicode值。
2.6版本中的新功能。
msvcrt.getche()
getch()
与之类似,但如果它代表可打印字符,则按键将被回显。
msvcrt.getwche()
宽字符变体getche()
,返回一个Unicode值。
2.6版本中的新功能。
msvcrt.putch(char)
将字符打印到控制台而不缓冲。
msvcrt.putwch(unicode_char)
putch()
接受Unicode值的宽字符变体。
2.6版本中的新功能。
msvcrt.ungetch(char)
导致字符char
被“推回”到控制台缓冲区中; 它将成为由getch()
或读取的下一个字符getche()
。
msvcrt.ungetwch(unicode_char)
ungetch()
接受Unicode值的宽字符变体。
2.6版本中的新功能。
3.其他功能
msvcrt.heapmin()
强制malloc()
堆清理自己并将未使用的块返回给操作系统。失败时,这会引发IOError
。