Bol*_*wyn 178 python passwords interactive prompt
场景:交互式CLI Python程序,需要密码.这也意味着,没有可能的GUI解决方案.
在bash中,我可以在不通过屏幕重新提示的情况下读取密码
read -s
Run Code Online (Sandbox Code Playgroud)
Python有类似的东西吗?也就是说,
password = raw_input('Password: ', dont_print_statement_back_to_screen)
Run Code Online (Sandbox Code Playgroud)
替代方法:在将类型字符发送回屏幕(又称浏览器样式)之前,将其替换为"*".
mjv*_*mjv 276
>>> import getpass
>>> pw = getpass.getpass()
Run Code Online (Sandbox Code Playgroud)
Ste*_*202 53
是的,getpass:"提示用户输入密码而不回显."
编辑:我自己还没有使用过这个模块,所以这就是我刚刚编写的内容(如果你在整个地方找到相似的代码,也不会感到惊讶):
import getpass
def login():
user = input("Username [%s]: " % getpass.getuser())
if not user:
user = getpass.getuser()
pprompt = lambda: (getpass.getpass(), getpass.getpass('Retype password: '))
p1, p2 = pprompt()
while p1 != p2:
print('Passwords do not match. Try again')
p1, p2 = pprompt()
return user, p1
Run Code Online (Sandbox Code Playgroud)
(这是Python 3.x; raw_input而不是input在使用Python 2.x时使用.)