本文实例讲述了Python实现控制台输入密码的方法。分享给大家供大家参考。具体如下:
1. raw_input() :
pwd = raw_input('password: ') print pwd # password: aaa # aaa
Note: 最简单的方法,但是不安全
2. getpass.getpass() :
import getpass pwd = getpass.getpass('password: ') print pwd # password: # aaaa
Note: 很安全,但是看不到输入的位数,会让人觉得有点不习惯,不知道的还以为没有在输入..
3. msvcrt.getch() :
代码如下:
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') # 删除一个星号,但是不知道为什么不能执行... else: chars.append(newChar) sys.stdout.write('*') # 显示为星号 print ''.join(chars) pwd = pwd_input() print pwd # ****** # aaaaaa
Note: 解决了第二种方法不能显示输入位数的问题,但是如果按退格键(backspace)的话,虽然实际的是退格了,
但控制台却没有显示相应的退格,比如,当前输入是:abcd,显示为:****,然后现在打一个退格键,实际
输入为:abc,而显示仍为:****。不知道为什么 sys.stdout.write('\b') 这行没有执行,估计是和使用msvcrt.getch()有关系。感兴趣的朋友可以进一步研究一下。
希望本文所述对大家的Python程序设计有所帮助。
华山资源网 Design By www.eoogi.com
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
华山资源网 Design By www.eoogi.com
暂无评论...
更新日志
2024年11月15日
2024年11月15日
- 炉石传说月初最强卡组有哪些 2024月初最强上分卡组推荐
- 狼人杀亮相原生鸿蒙之夜 假面科技强势登陆华为生态
- 12小时光线挑战!AI画质专家才是大平层首选
- 2024游戏IP报告:1~9月规模1960亿 68%用户愿为之付费
- 群星.2024-今夜一起为爱鼓掌电视剧原声带【相信音乐】【FLAC分轨】
- BIGFOUR.2013-大家利事【寰亚】【WAV+CUE】
- 李美凤.1992-情深透全情歌集【EMI百代】【WAV+CUE】
- 田震2024-《时光音乐会》[金峰][WAV+CUE]
- 群星《监听天碟3》[LECD]限量版[WAV+CUE]
- 心妤《声如夏花HQ》头版限量编号[WAV+CUE]
- 群星《摇滚五杰》[低速原抓WAV+CUE][1.1G]
- 群星 《2024好听新歌30》十倍音质 U盘音乐 [WAV+分轨]
- 群星《试音草原·女声篇》经典蒙古民歌[WAV+CUE][1G]
- 陈慧娴《永远是你的朋友》头版限量编号MQA-UHQCD2024[低速原抓WAV+CUE]
- 曼丽·女人三十《如果·爱》限量1:1母盘直刻[低速原抓WAV+CUE]