【问题标题】:"print" after "msvcrt.getch" doesn't work“msvcrt.getch”之后的“打印”不起作用
【发布时间】:2018-04-24 12:40:04
【问题描述】:

所以,我使用 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)

这里的问题是,在我输入整个“密码”后,* 会被打印出来。但是,我期待的是每次输入一个字符时都会打印一个 *我正在终端中运行代码

我认为我正确地构造了代码,为什么它不起作用?
(另外,如果有其他扫描密码的方法,请务必提及)

【问题讨论】:

    标签: python passwords msvcrt getch


    【解决方案1】:

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

    【讨论】:

    • 作为用户体验的一部分,我认为为每个字符打印一个“*”会很好。
    猜你喜欢
    • 2015-08-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-12
    • 1970-01-01
    • 2016-09-23
    • 2013-04-01
    相关资源
    最近更新 更多