getpass — 便携式密码输入

源代码: Lib/getpass.py


可用性:非 WASI。

此模块在 WebAssembly 上不起作用或不可用。有关更多信息,请参阅 WebAssembly 平台

getpass 模块提供了两个函数:

getpass.getpass(prompt='Password: ', stream=None, *, echo_char=None)

提示用户输入密码并不回显。会使用字符串 prompt 来提示用户,其默认值为 'Password: '。在 Unix 上,提示信息会使用 replace 错误处理句柄(如果需要)写入到文件类对象 stream 中。stream 默认为控制终端 (/dev/tty),如果不可用则默认为 sys.stderr (此参数在 Windows 上会被忽略)。

echo_char 参数控制用户输入时如何显示。如果 echo_charNone (默认值),输入将保持隐藏。否则,echo_char 必须是单个可打印的 ASCII 字符,每个键入的字符都将被其替换。例如,echo_char='*' 将显示星号而不是实际输入。

如果无回显输入不可用,getpass() 将回退到向 stream 打印一条警告消息并从 sys.stdin 读取,同时发出 GetPassWarning 警告。

备注

如果你在 IDLE 中调用 getpass,输入可能会在启动 IDLE 的终端中进行,而不是在 IDLE 窗口本身。

备注

在 Unix 系统上,当设置 echo_char 时,终端将被配置为在非规范模式下运行。特别地,这意味着像 Ctrl+U 这样的行编辑快捷键将无法工作,并可能在输入中插入意外的字符。

在 3.14 版本发生变更: 为键盘反馈添加了 echo_char 形参。

exception getpass.GetPassWarning

一个 UserWarning 的子类,在密码输入可能被回显时发出。

getpass.getuser()

返回用户的“登录名”。

此函数会依次检查环境变量 LOGNAME, USER, LNAMEUSERNAME,并返回第一个被设为非空字符串的变量的值。如果这些变量都没有设置,在支持 pwd 模块的系统上会返回密码数据库中的登录名,否则会引发 OSError

通常,应优先使用此函数而不是 os.getlogin()

在 3.13 版本发生变更: 之前,除了 OSError 外,还会引发各种其他异常。