Scénario: Un CLI interactif Python, nécessitant un mot de passe. Cela signifie également qu’il n’ya pas de solution graphique possible.
En bash, je pouvais obtenir un mot de passe lu sans le demander à nouveau à l'écran via
read -s
Y at-il quelque chose de similaire pour Python? C'est à dire.,
password = raw_input('Password: ', dont_print_statement_back_to_screen)
Alternative: remplacez les caractères saisis par '*' avant de les renvoyer à l'écran (style navigateur).
>>> import getpass
>>> pw = getpass.getpass()
Oui, getpass
: "Inviter l’utilisateur à entrer un mot de passe sans renvoi."
Edit: Je n'avais pas encore joué à ce module, c'est donc ce que je viens de vous concocter (je ne serais pas surpris si vous trouvez un code similaire à tous sur la place, cependant):
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
(Ceci est Python 3.x; utilisez raw_input
au lieu de input
lorsque Python 2.x.)