代码改变世界

python password输入

2013-09-11 13:32  cmsd  阅读(573)  评论(0编辑  收藏  举报

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 '\r\n': # 如果是换行,则输入结束  
            print ''  
            break  
        elif newChar == '\b': # 如果是退格,则删除末尾一位  
            if chars:  
                del chars[-1]  
                sys.stdout.write('\b \b') # 删除一个星号  
        else:  
            chars.append(newChar)  
            sys.stdout.write('*') # 显示为星号
    return ''.join[chars]
pwd = pwd_input()

print pwd