Документация Python неофициальный перевод
Содержание страницы

32.2. msvcrt – Полезные подпрограммы из MS VC++ runtimemsvcrt – Useful routines from the MS VC++ runtime

Платформы: Windows

Эти функции предоставляют доступ к некоторым полезным возможностям на платформах Windows. Некоторые модули более высокого уровня используют эти функции для создания реализаций своих служб для Windows. Например, модуль getpass использует их в реализации функции getpass().

Дополнительную документацию по этим функциям можно найти в документации Platform API.

Модуль реализует как обычный, так и широкосимвольный варианты API консольного ввода-вывода. Обычный API работает только с символами ASCII и имеет ограниченную пользу для интернационализированных приложений. Широкосимвольный API следует использовать везде, где это возможно.

32.2.1. Операции с файламиFile Operations

msvcrt.locking(fd, mode, nbytes)
Блокирует часть файла на основе файлового дескриптора fd из среды C. Возбуждает IOError при неудаче. Заблокированная область файла начинается от текущей позиции файла и занимает nbytes байт; она может выходить за конец файла. mode должен быть одной из констант LK_*, перечисленных ниже. Несколько областей в одном файле могут быть заблокированы одновременно, но они не должны пересекаться. Смежные области не объединяются; их нужно разблокировать по отдельности.
msvcrt.LK_LOCK
msvcrt.LK_RLCK
Блокирует указанные байты. Если байты не удаётся заблокировать, программа немедленно повторяет попытку через 1 секунду. Если после 10 попыток байты не удаётся заблокировать, возбуждается IOError.
msvcrt.LK_NBLCK
msvcrt.LK_NBRLCK
Блокирует указанные байты. Если байты не удаётся заблокировать, возбуждается IOError.
msvcrt.LK_UNLCK
Разблокирует указанные байты, которые должны быть предварительно заблокированы.
msvcrt.setmode(fd, flags)
Устанавливает режим перевода концов строк для файлового дескриптора fd. Для текстового режима flags должен быть равен os.O_TEXT; для двоичного – os.O_BINARY.
msvcrt.open_osfhandle(handle, flags)
Создаёт файловый дескриптор среды выполнения C из дескриптора файла handle. Параметр flags должен быть побитовым ИЛИ от os.O_APPEND, os.O_RDONLY и os.O_TEXT. Возвращённый файловый дескриптор можно использовать в качестве параметра os.fdopen() для создания файлового объекта.
msvcrt.get_osfhandle(fd)
Возвращает файловый дескриптор (handle) для файлового дескриптора fd. Возбуждает IOError, если fd не распознан.

32.2.2. Консольный ввод/выводConsole I/O

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.ungetch(char)
Заставляет символ char «вернуться обратно» в буфер консоли; он будет следующим символом, считываемым getch() или getche().
msvcrt.ungetwch(unicode_char)
Широкосимвольный вариант ungetch(), принимающий значение Unicode.

32.2.3. Прочие функцииOther Functions

msvcrt.heapmin()
Принуждает кучу malloc() очиститься и вернуть неиспользуемые блоки операционной системе. В случае неудачи возбуждает IOError.