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

msvcrt.md

176 строк · 13.9 КБ · обычная страница · сырой текст · скачать

1> **Источник:** https://python-all.ru/3.15/library/msvcrt.html2>3> «Документация Python на русском» – неофициальный перевод официальной документации Python: версии от 2.6 до 3.16, полнотекстовый поиск, английский оригинал рядом с переводом. Эта Markdown-версия страницы предназначена для работы с LLM: вставьте её в ChatGPT, Claude или Cursor.45---67# `msvcrt` – полезные утилиты из MS VC++ runtime89**Исходный код:** [PC/msvcrtmodule.c](https://python-all.ru/src/3.15/PC/msvcrtmodule.c)1011---1213Эти функции предоставляют доступ к некоторым полезным возможностям на платформах Windows. Некоторые модули более высокого уровня используют эти функции для создания реализаций своих служб под Windows. Например, модуль [`getpass`](https://python-all.ru/3.15/library/getpass.html#module-getpass) использует это при реализации функции [`getpass()`](https://python-all.ru/3.15/library/getpass.html#module-getpass).1415Дополнительную документацию по этим функциям можно найти в документации Platform API.1617Модуль реализует как обычную, так и широкосимвольную версию консольного API ввода-вывода. Обычный API работает только с ASCII-символами и имеет ограниченное применение для интернационализированных приложений. Широкосимвольный API следует использовать везде, где это возможно.1819[Доступность](https://python-all.ru/3.15/library/intro.html#availability): Windows.2021Изменено в версии 3.3: Операции в этом модуле теперь вызывают [`OSError`](https://python-all.ru/3.15/library/exceptions.html#OSError) вместо [`IOError`](https://python-all.ru/3.15/library/exceptions.html#IOError).2223## Файловые операции2425#### `msvcrt.locking(fd, mode, nbytes)`2627Блокирует часть файла на основе файлового дескриптора *fd* из C runtime. В случае ошибки вызывает [`OSError`](https://python-all.ru/3.15/library/exceptions.html#OSError). Заблокированная область файла простирается от текущей позиции файла на *nbytes* байт и может выходить за конец файла. *mode* должен быть одной из констант `LK_*`, перечисленных ниже. Несколько областей в файле могут быть заблокированы одновременно, но не должны перекрываться. Соседние области не объединяются; их необходимо разблокировать по отдельности.2829Вызывает [событие аудита](https://python-all.ru/3.15/library/sys.html#auditing) `msvcrt.locking` с аргументами `fd`, `mode`, `nbytes`.3031#### `msvcrt.LK_LOCK`3233#### `msvcrt.LK_RLCK`3435Блокирует указанные байты. Если байты не удаётся заблокировать, программа немедленно повторяет попытку через 1 секунду. Если после 10 попыток байты всё ещё не удаётся заблокировать, возбуждается [`OSError`](https://python-all.ru/3.15/library/exceptions.html#OSError).3637#### `msvcrt.LK_NBLCK`3839#### `msvcrt.LK_NBRLCK`4041Блокирует указанные байты. Если байты не удаётся заблокировать, возбуждается [`OSError`](https://python-all.ru/3.15/library/exceptions.html#OSError).4243#### `msvcrt.LK_UNLCK`4445Разблокирует указанные байты, которые должны быть предварительно заблокированы.4647#### `msvcrt.setmode(fd, flags)`4849Устанавливает режим преобразования концов строк для файлового дескриптора *fd*. Чтобы установить текстовый режим, *flags* должен быть [`os.O_TEXT`](https://python-all.ru/3.15/library/os.html#os.O_TEXT); для двоичного – [`os.O_BINARY`](https://python-all.ru/3.15/library/os.html#os.O_BINARY).5051#### `msvcrt.open_osfhandle(handle, flags)`5253Создаёт файловый дескриптор C runtime из файлового хендла *handle*. Параметр *flags* должен представлять собой побитовое ИЛИ констант [`os.O_APPEND`](https://python-all.ru/3.15/library/os.html#os.O_APPEND), [`os.O_RDONLY`](https://python-all.ru/3.15/library/os.html#os.O_RDONLY), [`os.O_TEXT`](https://python-all.ru/3.15/library/os.html#os.O_TEXT) и [`os.O_NOINHERIT`](https://python-all.ru/3.15/library/os.html#os.O_NOINHERIT). Возвращаемый файловый дескриптор может использоваться в качестве параметра для [`os.fdopen()`](https://python-all.ru/3.15/library/os.html#os.fdopen) для создания файлового объекта.5455Файловый дескриптор по умолчанию наследуется. Передайте флаг [`os.O_NOINHERIT`](https://python-all.ru/3.15/library/os.html#os.O_NOINHERIT), чтобы сделать его ненаследуемым.5657Возбуждает [событие аудита](https://python-all.ru/3.15/library/sys.html#auditing) `msvcrt.open_osfhandle` с аргументами `handle`, `flags`.5859#### `msvcrt.get_osfhandle(fd)`6061Возвращает файловый хендл для файлового дескриптора *fd*. Возбуждает [`OSError`](https://python-all.ru/3.15/library/exceptions.html#OSError), если *fd* не распознан.6263Вызывает [событие аудита](https://python-all.ru/3.15/library/sys.html#auditing) `msvcrt.get_osfhandle` с аргументом `fd`.6465## Консольный ввод-вывод6667#### `msvcrt.kbhit()`6869Возвращает ненулевое значение, если ожидает чтения нажатие клавиши. В противном случае возвращает 0.7071#### `msvcrt.getch()`7273Считывает нажатие клавиши и возвращает полученный символ в виде байтовой строки. Ничего не выводится в консоль. Этот вызов блокируется, если нажатие ещё не доступно, но не будет ждать нажатия `Enter`. Если нажатая клавиша была специальной функциональной клавишей, функция вернёт `'\000'` или `'\xe0'`; следующий вызов вернёт код клавиши. Нажатие `Control`-`C` не может быть считано этой функцией.7475#### `msvcrt.getwch()`7677Расширенный (wide char) вариант [`getch()`](https://python-all.ru/3.15/library/msvcrt.html#msvcrt.getch), возвращающий значение Unicode.7879#### `msvcrt.getche()`8081Аналогично [`getch()`](https://python-all.ru/3.15/library/msvcrt.html#msvcrt.getch), но нажатие клавиши будет выводиться на экран, если оно соответствует печатному символу.8283#### `msvcrt.getwche()`8485Расширенный (wide char) вариант [`getche()`](https://python-all.ru/3.15/library/msvcrt.html#msvcrt.getche), возвращающий значение Unicode.8687#### `msvcrt.putch(char)`8889Выводит байтовую строку *char* на консоль без буферизации.9091#### `msvcrt.putwch(unicode_char)`9293Расширенный (wide char) вариант [`putch()`](https://python-all.ru/3.15/library/msvcrt.html#msvcrt.putch), принимающий значение Unicode.9495#### `msvcrt.ungetch(char)`9697Помещает байтовую строку *char* обратно в буфер консоли; она будет прочитана как следующий символ с помощью [`getch()`](https://python-all.ru/3.15/library/msvcrt.html#msvcrt.getch) или [`getche()`](https://python-all.ru/3.15/library/msvcrt.html#msvcrt.getche).9899#### `msvcrt.ungetwch(unicode_char)`100101Расширенный (wide char) вариант [`ungetch()`](https://python-all.ru/3.15/library/msvcrt.html#msvcrt.ungetch), принимающий значение Unicode.102103## Другие функции104105#### `msvcrt.heapmin()`106107Принудительно очищает кучу `malloc()` и возвращает неиспользуемые блоки операционной системе. В случае ошибки вызывает исключение [`OSError`](https://python-all.ru/3.15/library/exceptions.html#OSError).108109#### `msvcrt.set_error_mode(mode)`110111Изменяет место, куда среда выполнения C записывает сообщение об ошибке, которая может привести к завершению программы. *mode* должна быть одной из констант `OUT_*`, перечисленных ниже, или [`REPORT_ERRMODE`](https://python-all.ru/3.15/library/msvcrt.html#msvcrt.REPORT_ERRMODE). Возвращает предыдущее значение или -1 в случае ошибки. Доступно только в [отладочной сборке Python](https://python-all.ru/3.15/using/configure.html#debug-build).112113#### `msvcrt.OUT_TO_DEFAULT`114115Приёмник ошибок определяется типом приложения. Доступно только в [отладочной сборке Python](https://python-all.ru/3.15/using/configure.html#debug-build).116117#### `msvcrt.OUT_TO_STDERR`118119Приёмник ошибок – стандартный поток ошибок. Доступно только в [отладочной сборке Python](https://python-all.ru/3.15/using/configure.html#debug-build).120121#### `msvcrt.OUT_TO_MSGBOX`122123Приёмник ошибок – диалоговое окно. Доступно только в [отладочной сборке Python](https://python-all.ru/3.15/using/configure.html#debug-build).124125#### `msvcrt.REPORT_ERRMODE`126127Сообщает текущее значение режима ошибок. Доступно только в [отладочной сборке Python](https://python-all.ru/3.15/using/configure.html#debug-build).128129#### `msvcrt.CrtSetReportMode(type, mode)`130131Задает место назначения (одно или несколько) для определенного типа отчета, создаваемого `_CrtDbgReport()` в среде выполнения MS VC++. *type* должна быть одной из констант `CRT_*`, перечисленных ниже. *mode* должна быть одной из констант `CRTDBG_*`, перечисленных ниже. Доступно только в [отладочной сборке Python](https://python-all.ru/3.15/using/configure.html#debug-build).132133#### `msvcrt.CrtSetReportFile(type, file)`134135После использования [`CrtSetReportMode()`](https://python-all.ru/3.15/library/msvcrt.html#msvcrt.CrtSetReportMode) для задания [`CRTDBG_MODE_FILE`](https://python-all.ru/3.15/library/msvcrt.html#msvcrt.CRTDBG_MODE_FILE) можно указать дескриптор файла, который будет получать текст сообщения. *type* должна быть одной из констант `CRT_*`, перечисленных ниже. *file* должен быть желаемым дескриптором файла. Доступно только в [отладочной сборке Python](https://python-all.ru/3.15/using/configure.html#debug-build).136137#### `msvcrt.CRT_WARN`138139Предупреждения, сообщения и информация, не требующие немедленного внимания.140141#### `msvcrt.CRT_ERROR`142143Ошибки, неисправимые проблемы и ситуации, требующие немедленного внимания.144145#### `msvcrt.CRT_ASSERT`146147Ошибки утверждений.148149#### `msvcrt.CRTDBG_MODE_DEBUG`150151Записывает сообщение в окно вывода отладчика.152153#### `msvcrt.CRTDBG_MODE_FILE`154155Записывает сообщение в файловый дескриптор, предоставленный пользователем. Для указания конкретного файла или потока, используемого в качестве назначения, следует вызвать [`CrtSetReportFile()`](https://python-all.ru/3.15/library/msvcrt.html#msvcrt.CrtSetReportFile).156157#### `msvcrt.CRTDBG_MODE_WNDW`158159Создаёт диалоговое окно для отображения сообщения вместе с кнопками `Abort`, `Retry` и `Ignore`.160161#### `msvcrt.CRTDBG_REPORT_MODE`162163Возвращает текущий *режим* для указанного *типа*.164165#### `msvcrt.CRT_ASSEMBLY_VERSION`166167Версия сборки CRT из файла заголовка `crtassem.h`.168169#### `msvcrt.VC_ASSEMBLY_PUBLICKEYTOKEN`170171Токен открытого ключа сборки VC из файла заголовка `crtassem.h`.172173#### `msvcrt.LIBRARIES_ASSEMBLY_NAME_PREFIX`174175Префикс имени сборки Libraries из файла заголовка `crtassem.h`.176