1.linux下用getpass,没有星号提示,符合linux风格
from getpass import getpass
pwd = getpass('Enter the password: ')
2.windows下用msvcrt
import msvcrt, sys def pwd_input(): chars = [] while True: newChar = msvcrt.getch() if newChar in ' ': # 如果是换行,则输入结束 print '' break elif newChar == '': # 如果是退格,则删除末尾一位 if chars: del chars[-1] sys.stdout.write(' ') # 删除一个星号 else: chars.append(newChar) sys.stdout.write('*') # 显示为星号 return ''.join[chars] pwd = pwd_input() print pwd