场景:一个需要密码的交互式CLI Python程序,也就是说,没有GUI解决方案可用。
在bash中,我可以通过以下方式获取密码并在屏幕上不重复提示:
read -s
有没有 Python 的类似功能呢?即,
password = raw_input('Password: ', dont_print_statement_back_to_screen)
替代方案:在将字符返回到屏幕(即浏览器样式)之前,用“*”替换已输入的字符。
场景:一个需要密码的交互式CLI Python程序,也就是说,没有GUI解决方案可用。
在bash中,我可以通过以下方式获取密码并在屏幕上不重复提示:
read -s
有没有 Python 的类似功能呢?即,
password = raw_input('Password: ', dont_print_statement_back_to_screen)
替代方案:在将字符返回到屏幕(即浏览器样式)之前,用“*”替换已输入的字符。
>>> import getpass
>>> pw = getpass.getpass()
是的,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