getpass – портативный ввод пароля¶getpass – Portable password input
Исходный код: Lib/getpass.py
Доступность: не WASI.
Этот модуль не работает или недоступен на WebAssembly. Подробнее см. платформы WebAssembly.
Модуль getpass предоставляет две функции:
- getpass.getpass(prompt='Password: ', stream=None, *, echo_char=None)¶
Запрашивает у пользователя пароль без отображения. Пользователю выводится строка prompt, по умолчанию равная
'Password: '. В Unix строка записывается в файлоподобный объект поток данных с использованием обработчика ошибок replace при необходимости. поток данных по умолчанию равен управляющему терминалу (/dev/tty) или, если он недоступен,sys.stderr(этот аргумент игнорируется в Windows).Аргумент echo_char управляет отображением вводимых пользователем символов. Если echo_char равен
None(по умолчанию), ввод остаётся скрытым. В противном случае echo_char должен быть одним печатным символом ASCII, которым заменяется каждый введённый символ. Например,echo_char='*'будет выводить звёздочки вместо фактического ввода.Если ввод без эхо-отображения недоступен, getpass() возвращается к выводу предупреждающего сообщения в поток данных и чтению из
sys.stdinс генерациейGetPassWarning.Примечание
Если вызвать getpass из IDLE, ввод может выполняться в терминале, из которого была запущена IDLE, а не в самом окне IDLE.
Примечание
В Unix-системах, когда echo_char установлен, терминал будет настроен на работу в неканоническом режиме. Поддерживаются стандартные управляющие символы терминала:
Ctrl+A – Переместить курсор в начало строки
Ctrl+E – Переместить курсор в конец строки
Ctrl+K – Удалить от курсора до конца строки
Ctrl+U – Удалить всю строку
Ctrl+W – Стереть предыдущее слово
Ctrl+V – Вставить следующий символ буквально (кавычка)
Backspace/DEL – Удалить символ перед курсором
Эти сочетания работают за счёт чтения настроек отображения управляющих символов терминала из параметров termios.
Изменено в версии 3.14: Добавлен параметр echo_char для обратной связи с клавиатуры.
Изменено в версии 3.15: При использовании непустого echo_char в Unix сочетания клавиш (включая перемещение курсора и редактирование строки) теперь корректно обрабатываются с помощью конфигурации управляющих символов терминала.
- exception getpass.GetPassWarning¶
Подкласс
UserWarning, создаваемый, когда ввод пароля может отображаться на экране.
- getpass.getuser()¶
Возвращает «логин» пользователя.
Эта функция последовательно проверяет переменные окружения
LOGNAME,USER,LNAMEиUSERNAMEи возвращает значение первой, установленной в непустую строку. Если ни одна не установлена, на системах, поддерживающих модульpwd, возвращается логин из базы паролей; в противном случае возбуждаетсяOSError.В целом эту функцию следует предпочитать
os.getlogin().Изменено в версии 3.13: Ранее возбуждались различные исключения, а не только
OSError.