getpass.md
1> **Источник:** https://python-all.ru/3/library/getpass.html2>3> «Документация Python на русском» – неофициальный перевод официальной документации Python: версии от 2.6 до 3.16, полнотекстовый поиск, английский оригинал рядом с переводом. Эта Markdown-версия страницы предназначена для работы с LLM: вставьте её в ChatGPT, Claude или Cursor.45---67# `getpass` – портативный ввод пароля89**Исходный код:** [Lib/getpass.py](https://python-all.ru/src/3.14/Lib/getpass.py)1011---1213[Доступность](https://python-all.ru/3/library/intro.html#availability): не WASI.1415Этот модуль не работает или недоступен на WebAssembly. Подробнее см. [платформы WebAssembly](https://python-all.ru/3/library/intro.html#wasm-availability).1617Модуль `getpass` предоставляет две функции:1819#### `getpass.getpass(prompt='Password: ', stream=None, *, echo_char=None)`2021Запрашивает у пользователя пароль без отображения. Пользователю выводится строка *prompt*, по умолчанию равная `'Password: '`. В Unix строка записывается в файлоподобный объект *поток данных* с использованием обработчика ошибок replace при необходимости. *поток данных* по умолчанию равен управляющему терминалу (`/dev/tty`) или, если он недоступен, `sys.stderr` (этот аргумент игнорируется в Windows).2223Аргумент *echo\_char* управляет отображением вводимых пользователем символов. Если *echo\_char* равен `None` (по умолчанию), ввод остаётся скрытым. В противном случае *echo\_char* должен быть одним печатным символом ASCII, которым заменяется каждый введённый символ. Например, `echo_char='*'` будет выводить звёздочки вместо фактического ввода.2425Если ввод без эхо-отображения недоступен, getpass() возвращается к выводу предупреждающего сообщения в *поток данных* и чтению из `sys.stdin` с генерацией [`GetPassWarning`](https://python-all.ru/3/library/getpass.html#getpass.GetPassWarning).2627> **Примечание**28>29> Если вызвать getpass из IDLE, ввод может выполняться в терминале, из которого была запущена IDLE, а не в самом окне IDLE.3031> **Примечание**32>33> В системах Unix, если задан *echo\_char*, терминал будет переведён в *[неканонический режим](https://python-all.ru/3/library/getpass.html)*. В частности, это означает, что сокращения для редактирования строки, такие как `Ctrl`+`U`, не будут работать и могут вставлять неожиданные символы в ввод.3435Изменено в версии 3.14: Добавлен параметр *echo\_char* для обратной связи с клавиатуры.3637#### `exception getpass.GetPassWarning`3839Подкласс [`UserWarning`](https://python-all.ru/3/library/exceptions.html#UserWarning), создаваемый, когда ввод пароля может отображаться на экране.4041#### `getpass.getuser()`4243Возвращает «логин» пользователя.4445Эта функция последовательно проверяет переменные окружения `LOGNAME`, `USER`, `LNAME` и `USERNAME` и возвращает значение первой, установленной в непустую строку. Если ни одна не установлена, на системах, поддерживающих модуль [`pwd`](https://python-all.ru/3/library/pwd.html#module-pwd), возвращается логин из базы паролей; в противном случае возбуждается [`OSError`](https://python-all.ru/3/library/exceptions.html#OSError).4647В целом эту функцию следует предпочитать [`os.getlogin()`](https://python-all.ru/3/library/os.html#os.getlogin).4849Изменено в версии 3.13: Ранее возбуждались различные исключения, а не только [`OSError`](https://python-all.ru/3/library/exceptions.html#OSError).50