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

msvcrt.md

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

1> **Источник:** https://python-all.ru/3.0/library/msvcrt.html2>3> «Документация Python на русском» – неофициальный перевод официальной документации Python: версии от 2.6 до 3.16, полнотекстовый поиск, английский оригинал рядом с переводом. Эта Markdown-версия страницы предназначена для работы с LLM: вставьте её в ChatGPT, Claude или Cursor.45---67# `msvcrt` – Полезные функции из MS VC++ runtime89*Платформы:* Windows1011Эти функции предоставляют доступ к некоторым полезным возможностям на платформах Windows. Некоторые модули более высокого уровня используют эти функции для создания реализаций своих служб для Windows. Например, модуль [`getpass`](https://python-all.ru/3.0/library/getpass.html#module-getpass) использует их в реализации функции `getpass()`.1213Дополнительную документацию по этим функциям можно найти в документации Platform API.1415Модуль реализует как обычный, так и широкосимвольный варианты API консольного ввода-вывода. Обычный API работает только с символами ASCII и имеет ограниченную пользу для интернационализированных приложений. Широкосимвольный API следует использовать везде, где это возможно.1617## Файловые операции1819#### `[msvcrt.locking]msvcrt.locking(fd, mode, nbytes)`2021Блокирует часть файла на основе файлового дескриптора2223*fd*2425из среды C. Возбуждает2627[`IOError`](https://python-all.ru/3.0/library/exceptions.html#exceptions.IOError)2829при неудаче. Заблокированная область файла начинается от текущей позиции файла и занимает3031*nbytes*3233байт; она может выходить за конец файла.3435*mode*3637должен быть одной из констант3839`LK_*`4041, перечисленных ниже. Несколько областей в одном файле могут быть заблокированы одновременно, но они не должны пересекаться. Смежные области не объединяются; их нужно разблокировать по отдельности.4243#### `[msvcrt.LK_LOCK]msvcrt.LK_LOCK`4445#### `msvcrt.LK_RLCK`4647Блокирует указанные байты. Если байты не удаётся заблокировать, программа немедленно повторяет попытку через 1 секунду. Если после 10 попыток байты не удаётся заблокировать, возбуждается4849[`IOError`](https://python-all.ru/3.0/library/exceptions.html#exceptions.IOError)5051.5253#### `[msvcrt.LK_NBLCK]msvcrt.LK_NBLCK`5455#### `msvcrt.LK_NBRLCK`5657Блокирует указанные байты. Если байты не удаётся заблокировать, возбуждается5859[`IOError`](https://python-all.ru/3.0/library/exceptions.html#exceptions.IOError)6061.6263#### `[msvcrt.LK_UNLCK]msvcrt.LK_UNLCK`6465Разблокирует указанные байты, которые должны быть предварительно заблокированы.6667#### `[msvcrt.setmode]msvcrt.setmode(fd, flags)`6869Устанавливает режим перевода концов строк для файлового дескриптора7071*fd*7273. Для текстового режима7475*flags*7677должен быть равен7879[`os.O_TEXT`](https://python-all.ru/3.0/library/os.html#os.O_TEXT)8081; для двоичного –8283[`os.O_BINARY`](https://python-all.ru/3.0/library/os.html#os.O_BINARY)8485.8687#### `[msvcrt.open_osfhandle]msvcrt.open_osfhandle(handle, flags)`8889Создаёт файловый дескриптор среды выполнения C из дескриптора файла9091*handle*9293. Параметр9495*flags*9697должен быть побитовым ИЛИ от9899[`os.O_APPEND`](https://python-all.ru/3.0/library/os.html#os.O_APPEND)100101,102103[`os.O_RDONLY`](https://python-all.ru/3.0/library/os.html#os.O_RDONLY)104105и106107[`os.O_TEXT`](https://python-all.ru/3.0/library/os.html#os.O_TEXT)108109. Возвращённый файловый дескриптор можно использовать в качестве параметра110111[`os.fdopen()`](https://python-all.ru/3.0/library/os.html#os.fdopen)112113для создания файлового объекта.114115#### `[msvcrt.get_osfhandle]msvcrt.get_osfhandle(fd)`116117Возвращает файловый дескриптор (handle) для файлового дескриптора118119*fd*120121. Возбуждает122123[`IOError`](https://python-all.ru/3.0/library/exceptions.html#exceptions.IOError)124125, если126127*fd*128129не распознан.130131## Консольный ввод-вывод132133#### `[msvcrt.kbhit]msvcrt.kbhit()`134135Возвращает true, если нажатие клавиши ожидает чтения.136137#### `[msvcrt.getch]msvcrt.getch()`138139Считывает нажатие клавиши и возвращает результирующий символ. Ничего не выводится на консоль. Этот вызов блокируется, если нажатие ещё не доступно, но не ждёт нажатия140141`Enter`142143. Если нажатая клавиша была специальной функциональной клавишей, будет возвращён144145`'\000'`146147или148149`'\xe0'`150151; следующий вызов вернёт код клавиши. Нажатие клавиш152153`Control-C`154155не может быть считано этой функцией.156157#### `[msvcrt.getwch]msvcrt.getwch()`158159Широкосимвольный вариант160161[`getch()`](https://python-all.ru/3.0/library/msvcrt.html#msvcrt.getch)162163, возвращающий значение Unicode.164165#### `[msvcrt.getche]msvcrt.getche()`166167Аналогична168169[`getch()`](https://python-all.ru/3.0/library/msvcrt.html#msvcrt.getch)170171, но нажатие клавиши будет выведено на экран, если оно представляет печатный символ.172173#### `[msvcrt.getwche]msvcrt.getwche()`174175Широкосимвольный вариант176177[`getche()`](https://python-all.ru/3.0/library/msvcrt.html#msvcrt.getche)178179, возвращающий значение Unicode.180181#### `[msvcrt.putch]msvcrt.putch(char)`182183Выводит символ184185*char*186187на консоль без буферизации.188189#### `[msvcrt.putwch]msvcrt.putwch(unicode_char)`190191Широкосимвольный вариант192193[`putch()`](https://python-all.ru/3.0/library/msvcrt.html#msvcrt.putch)194195, принимающий значение Unicode.196197#### `[msvcrt.ungetch]msvcrt.ungetch(char)`198199Заставляет символ200201*char*202203«вернуться обратно» в буфер консоли; он будет следующим символом, считываемым204205[`getch()`](https://python-all.ru/3.0/library/msvcrt.html#msvcrt.getch)206207или208209[`getche()`](https://python-all.ru/3.0/library/msvcrt.html#msvcrt.getche)210211.212213#### `[msvcrt.ungetwch]msvcrt.ungetwch(unicode_char)`214215Широкосимвольный вариант216217[`ungetch()`](https://python-all.ru/3.0/library/msvcrt.html#msvcrt.ungetch)218219, принимающий значение Unicode.220221## Другие функции222223#### `[msvcrt.heapmin]msvcrt.heapmin()`224225Принуждает кучу226227`malloc`228229очиститься и вернуть неиспользуемые блоки операционной системе. Это работает только на Windows NT. В случае неудачи возникает230231[`IOError`](https://python-all.ru/3.0/library/exceptions.html#exceptions.IOError)232233.234