用星号屏蔽python中的用户输入

发布于 2021-01-29 16:37:37

我试图用星号掩盖用户输入到IDLE中的内容,以使周围的人看不到他们正在输入/已输入的内容。我正在使用基本的原始输入来收集他们输入的内容。

key = raw_input('Password :: ')

用户输入密码后理想的IDLE提示:

Password :: **********
关注者
0
被浏览
35
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    根据操作系统的不同,如何从用户输入中获取单个字符以及如何检查回车符将有所不同。

    看到这篇文章:Python从用户那里读取一个字符

    例如,在OSX上,您可以这样:

    import sys, tty, termios
    
    def getch():
        fd = sys.stdin.fileno()
        old_settings = termios.tcgetattr(fd)
        try:
            tty.setraw(sys.stdin.fileno())
            ch = sys.stdin.read(1)
        finally:
            termios.tcsetattr(fd, termios.TCSADRAIN, old_settings)
        return ch
    
    key = ""
    sys.stdout.write('Password :: ')
    while True:
        ch = getch()
        if ch == '\r':
            break
        key += ch
        sys.stdout.write('*')
    print
    print key
    


知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看