«печать» после «msvcrt.getch» ​​не работает - PullRequest
0 голосов
/ 24 апреля 2018

Итак, я использую python и написал код для сканирования пароля. Поэтому, поскольку пароль не должен отображаться открыто, я сканирую один символ, используя msvcrt.getch(), а затем делаю print('*', end='').
Вот код:

if __name__ == '__main__':
    string = ''
    ch = msvcrt.getch()
    while ch != b'\r':
        print('*', end='')
        string += ch.decode('utf-8')
        ch = msvcrt.getch()
    print('\nEntered string is: ', string)

Проблема здесь в том, что * печатаются после того, как я ввожу весь «пароль». Но я ожидал, что * будет печататься каждый раз при вводе символа. Я использую код в терминале .

Я думаю, что я правильно структурировал код, так почему он не работает?
(Также, если есть другие способы сканирования паролей, пожалуйста, укажите их)

1 Ответ

0 голосов
/ 24 апреля 2018

Однако я не знаком с msvcrt, если печать '* не так важна, вы можете использовать стандартную библиотеку getpass .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...