使用字符屏蔽键盘输入 - Python 3.0版

时间:2015-03-01 15:21:52

标签: python python-3.x

看,没有人正确回答我的问题而且正在复制我之前提出的问题,因为我不清楚上一个问题

我想在Windows操作系统上使用Python 3及以上版本的星号等字符屏蔽我的键盘输入,

到目前为止,我有这个,

import getpass

pswd = getpass.getpass('Password:')

我可以隐藏密码输入,但我无法为每个字母显示字符

我尝试使用msvcrt模块,但是错误说没有模块名称' msvcrt'不断弹出pop,可能是因为我有Python 3及以上版本。我也不想使用tKinter。

如果有人可以通过添加几行代码来解决这个问题,那将是一个很大的帮助,因为它适用于我的计算机科学课程

1 个答案:

答案 0 :(得分:0)

我想我有你需要的东西。 密码设置为变量名称' psw'。 这似乎只适用于cmd。

import msvcrt
import time
import sys
import os

def getPASS():
    print("Input password")
    list1 = []
    while True:
        char = msvcrt.getch()
        char =str(char)
        char = char[2:-1]
        if char == "\\n'" or char == "\\r":
            break
    elif char == "\\x08":
        del list1[-1]
        os.system("cls")
        print("Input password:")
        sys.stdout.write("*" * len(list1))
        sys.stdout.flush()
        continue
    else:
        list1.append(char)
        sys.stdout.write("*")
        sys.stdout.flush()
print("\n")
psw = "".join(list1)
print(psw)
invalid = ' ,:;/?"\}]{[-=+!@#$%^&*()|'
for x in psw:
    if x in invalid:
        print("Character %r is not allowed in password" % x)
        getPASS()
    else:
        pass

getPASS()

请给予任何改进,Dan