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

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

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

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

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

Изменено в версии 3.3: Операции в этом модуле теперь вызывают OSError там, где раньше вызывалось IOError.

34.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() для создания файлового объекта.

msvcrt.get_osfhandle(fd)

Возвращает дескриптор файла для файлового дескриптора fd. Вызывает OSError, если fd не распознан.

34.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.

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

msvcrt.heapmin()

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