我试图用星号掩盖用户输入IDLE的内容,这样他们周围的人就无法看到他们输入/输入的内容.我正在使用基本的原始输入来收集他们输入的内容.
key = raw_input('Password :: ')
用户输入密码后理想的IDLE提示:
Password :: **********
解决方法:
根据操作系统,如何从用户输入获取单个字符以及如何检查回车符将有所不同.
看这篇文章:Python read a single character from the user
例如,在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