getpass — Portable password input¶
Source code: Lib/getpass.py
The getpass module provides two functions:
-
getpass.getpass(prompt='Password: ', stream=None, *, echo_char=None)¶
Prompt the user for a password without echoing. The user is prompted using
the string prompt, which defaults to 'Password: '. On Unix, the
prompt is written to the file-like object stream using the replace error
handler if needed. stream defaults to the controlling terminal
(/dev/tty) or if that is unavailable to sys.stderr (this
argument is ignored on Windows).
The echo_char argument controls how user input is displayed while typing.
If echo_char is None (default), input remains hidden. Otherwise,
echo_char must be a single printable ASCII character and each
typed character is replaced by it. For example, echo_char='*' will
display asterisks instead of the actual input.
If echo-free input is unavailable, getpass() falls back to
printing a warning message to stream and reading from sys.stdin and
issuing a GetPassWarning.
Note
If you call getpass() from within IDLE, the input may be
done in the terminal you launched IDLE from rather than the idle window
itself.
Note
On Unix systems, when echo_char is set, the terminal will be
configured to operate in
noncanonical mode.
Common terminal control characters are supported:
Ctrl+A - Move cursor to beginning of line
Ctrl+E - Move cursor to end of line
Ctrl+K - Kill (delete) from cursor to end of line
Ctrl+U - Kill (delete) entire line
Ctrl+W - Erase previous word
Ctrl+V - Insert next character literally (quote)
Backspace/DEL - Delete character before cursor
These shortcuts work by reading the terminal’s configured control
character mappings from termios settings.
Changed in version 3.14: Added the echo_char parameter for keyboard feedback.
Changed in version 3.15: When using non-empty echo_char on Unix, keyboard shortcuts (including
cursor movement and line editing) are now properly handled using the
terminal’s control character configuration.
-
exception getpass.GetPassWarning¶
A UserWarning subclass issued when password input may be echoed.
-
getpass.getuser()¶
Return the “login name” of the user.
This function checks the environment variables LOGNAME,
USER, LNAME and USERNAME, in order, and
returns the value of the first one which is set to a non-empty string. If
none are set, the login name from the password database is returned on
systems which support the pwd module, otherwise, an OSError
is raised.
In general, this function should be preferred over os.getlogin().
Changed in version 3.13: Previously, various exceptions beyond just OSError were raised.
©
Copyright 2001 Python Software Foundation.
This page is licensed under the Python Software Foundation License Version 2.
Examples, recipes, and other code in the documentation are additionally licensed under the Zero Clause BSD License.
See
History and License for more information.
The Python Software Foundation is a non-profit corporation.
Please donate.
Last updated on Nov 12, 2026 (08:53 UTC).
Found a bug?
Created using
Sphinx 9.1.1.