python星号怎么输入_Python实现星号遮掩的密码输入

代码:

def pwd_input(msg = ''):

import msvcrt, sys

if msg != '':

sys.stdout.write(msg)

chars = []

while True:

newChar = msvcrt.getch()

if newChar in '\3\r\n': # 如果是换行,Ctrl+C,则输入结束

print ''

if newChar in '\3': # 如果是Ctrl+C,则将输入清空,返回空字符串

chars = []

break

elif newChar == '\b': # 如果是退格,则删除末尾一位

if chars:

del chars[-1]

sys.stdout.write('\b \b') # 左移一位,用空格抹掉星号,再退格

else:

chars.append(newChar)

sys.stdout.write('*') # 显示为星号

return ''.join(chars)

其中,参数msg代表输入的提示文字。

‘\3\r\n’ 含义是,如果输入是Ctrl+C,或者是回车符,则输入结束。因为操作系统的不同,对回车的编码方式有区别。

'\b \b' 含义是,\b是光标左移一位,相当于按了键盘上的左箭头,再用空格代替掉右侧的一位*号,再将光标移回一位。

注意:此代码用了底层的I/O模块,甚至接管了键盘中断。

改编自:http://www.cnblogs.com/lovebread/archive/2010/11/09/1872774.html

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值