GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • optparse — Parser for command line options
  • Report a bug
  • Improve this page
  • Show source
  • index
  • modules
  • next
  • Python
  • 3.15.2 documentation
  • The Python standard library
  • Command-line interface libraries
  • getpass — Portable password input

This view

  • Original page
  • New address

GeezerVison is showing docs.python.org — getpass — Portable password input

getpass — Portable password input¶

Source code: Lib/getpass.py


Availability: not WASI.

This module does not work or is not available on WebAssembly. See WebAssembly platforms for more information.

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.
You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.