Содержание страницы
32.2. msvcrt – Полезные подпрограммы из MS VC++ runtime¶msvcrt – 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() для создания файлового объекта.
32.2.2. Консольный ввод/вывод¶Console I/O
- msvcrt.kbhit()¶
- Возвращает true, если нажатие клавиши ожидает чтения.
- msvcrt.getch()¶
- Считывает нажатие клавиши и возвращает результирующий символ. Ничего не выводится на консоль. Этот вызов блокируется, если нажатие ещё не доступно, но не ждёт нажатия Enter. Если нажатая клавиша была специальной функциональной клавишей, будет возвращён '\000' или '\xe0'; следующий вызов вернёт код клавиши. Нажатие клавиш Control-C не может быть считано этой функцией.
- msvcrt.getche()¶
- Аналогична getch(), но нажатие клавиши будет выведено на экран, если оно представляет печатный символ.
- msvcrt.putch(char)¶
- Выводит символ char на консоль без буферизации.