@xleb1tch

Как изменить вводимые данные пользователем на звёздочки?

Например я пишу:input("Пароль: ") мне нужно сделать так, чтобы вводимые символы заменялись на звёздочки. Я знаю про getpass, но он мне не подходит. И ещё я вроде-бы нашёл как это сделать через inline-input, но есть проблема в том что там бесконечно добавляется по одной строке с верху.
  • Вопрос задан
  • 145 просмотров
Решения вопроса 1
hottabxp
@hottabxp Куратор тега Python
Сначала мы жили бедно, а потом нас обокрали..
Можно использовать библиотеку keyboard
import keyboard

secret_symbol = '*' # Символ для замены

def masked_input(prompt):
    print(prompt, end='', flush=True)
    input_str = ''
    
    while True:
        event = keyboard.read_event(suppress=True)
        key = event.name
        
        if event.event_type == 'down':
            if key == 'enter':
                print()
                break
            elif key == 'backspace' and len(input_str) > 0:
                input_str = input_str[:-1]
                print('\b \b', end='', flush=True)
            elif len(key) == 1:
                input_str += key
                print(secret_symbol, end='', flush=True)
    
    return input_str

password = masked_input("Введите пароль: ")
print(f"Введенный пароль: {password}")
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы