Содержание страницы
33.2. msvcrt – Полезные подпрограммы из MS VC++ runtime¶msvcrt – Useful routines from the MS VC++ runtime
Эти функции предоставляют доступ к некоторым полезным возможностям на платформах Windows. Некоторые модули более высокого уровня используют эти функции для создания реализаций своих служб под Windows. Например, модуль getpass использует их для реализации функции getpass().
Дополнительную документацию по этим функциям можно найти в документации Platform API.
Модуль реализует как обычный, так и широкосимвольный варианты API консольного ввода-вывода. Обычный API работает только с символами ASCII и имеет ограниченную пользу для интернационализированных приложений. Широкосимвольный API следует использовать везде, где это возможно.
Изменено в версии 3.3: Операции в этом модуле теперь вызывают OSError там, где раньше вызывалось IOError.
33.2.1. Операции с файлами¶File Operations
- msvcrt.locking(fd, mode, nbytes)¶
Блокирует часть файла на основе файлового дескриптора fd из среды выполнения C. В случае ошибки вызывает 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 из дескриптора файла handle. Параметр flags должен быть побитовым ИЛИ от os.O_APPEND, os.O_RDONLY и os.O_TEXT. Возвращённый файловый дескриптор можно использовать в качестве параметра os.fdopen() для создания файлового объекта.
33.2.2. Консольный ввод-вывод¶Console I/O
- msvcrt.kbhit()¶
Возвращает true, если нажатие клавиши ожидает чтения.
- msvcrt.getch()¶
Считывает нажатие клавиши и возвращает полученный символ в виде байтовой строки. Ничего не выводится на консоль. Этот вызов блокируется, если нажатие клавиши ещё не доступно, но не ждёт нажатия Enter. Если нажатая клавиша является специальной функциональной клавишей, функция возвращает '\000' или '\xe0'; следующий вызов вернёт код клавиши. Нажатие Control-C не может быть считано этой функцией.
- msvcrt.getche()¶
Аналогична getch(), но нажатие клавиши будет выведено на экран, если оно представляет печатный символ.
- msvcrt.putch(char)¶
Выводит байтовую строку char на консоль без буферизации.