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

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

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

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

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

35.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) handle. Параметр flags должен быть побитовым ИЛИ значений os.O_APPEND, os.O_RDONLY и os.O_TEXT. Возвращаемый файловый дескриптор можно использовать в качестве параметра для os.fdopen(), чтобы создать файловый объект.

msvcrt.get_osfhandle(fd)

Возвращает дескриптор файла (handle) для файлового дескриптора fd. Вызывает исключение IOError, если fd не распознан.

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

msvcrt.kbhit()

Возвращает true, если нажатие клавиши ожидает чтения.

msvcrt.getch()

Считывает нажатие клавиши и возвращает полученный символ. Никакого эха на консоль не выводится. Этот вызов блокируется, если нажатие клавиши ещё недоступно, но не ждёт нажатия Enter. Если нажатая клавиша была специальной функциональной клавишей, будет возвращено '\000' или '\xe0'; следующий вызов вернёт код клавиши. Нажатие клавиши Control-C не может быть считано этой функцией.

msvcrt.getwch()

Расширенный (wide char) вариант getch(), возвращающий значение Unicode.

Новое в версии 2.6.

msvcrt.getche()

Аналогично getch(), но нажатие клавиши будет выведено на экран, если оно представляет печатный символ.

msvcrt.getwche()

Расширенный (wide char) вариант getche(), возвращающий значение Unicode.

Новое в версии 2.6.

msvcrt.putch(char)

Выводит символ char на консоль без буферизации.

msvcrt.putwch(unicode_char)

Расширенный (wide char) вариант putch(), принимающий значение Unicode.

Новое в версии 2.6.

msvcrt.ungetch(char)

Заставляет символ char быть «возвращённым обратно» в буфер консоли; он будет следующим символом, считанным с помощью getch() или getche().

msvcrt.ungetwch(unicode_char)

Расширенный (wide char) вариант ungetch(), принимающий значение Unicode.

Новое в версии 2.6.

35.2.3. Другие функцииOther Functions

msvcrt.heapmin()

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