Pregunta

Escenario: Un programa CLI interactiva de Python, que se encuentra en necesidad de una contraseña. Eso significa también, no hay solución posible interfaz gráfica de usuario.

En bash que pude obtener una contraseña sin leer en volver a solicitar que en la pantalla a través de

read -s

¿Hay algo similar para Python? Es decir.,

password = raw_input('Password: ', dont_print_statement_back_to_screen)

Alternativa:. Reemplazar los caracteres escritos con '*' antes de enviarlos de nuevo a la pantalla (también conocido como 'estilo navegador)

¿Fue útil?

Solución

>>> import getpass
>>> pw = getpass.getpass()

Otros consejos

Sí, getpass : "Preguntar al usuario una contraseña sin reflejar. "

Editar No había jugado con este módulo a mí mismo, sin embargo, así que esto es lo que acabo de cociné (no se sorprenda si encuentra un código similar en todo el lugar, sin embargo):

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

(Esto es Python 3.x, el uso de raw_input en lugar de input utilizando Python 2.x).

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top