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_char 为
None
(默认值),输入将保持隐藏。否则,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
,LNAME
和USERNAME
,并返回第一个被设为非空字符串的变量的值。如果这些变量都没有设置,在支持pwd
模块的系统上会返回密码数据库中的登录名,否则会引发OSError
。通常,应优先使用此函数而不是
os.getlogin()
。在 3.13 版本发生变更: 之前,除了
OSError
外,还会引发各种其他异常。