“msvcrt.getch”之后的“print”不起作用

时间:2018-04-24 12:40:05

标签: python passwords msvcrt getch

所以,我正在使用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 :(得分:0)

但是我不熟悉msvcrt,如果打印'*'不重要,你可以使用getpass标准库。