Python實(shí)現(xiàn)控制臺(tái)輸入密碼的方法
本文實(shí)例講述了Python實(shí)現(xiàn)控制臺(tái)輸入密碼的方法。分享給大家供大家參考。具體如下:
1. raw_input() :
pwd = raw_input('password: ')
print pwd
# password: aaa
# aaa
Note: 最簡(jiǎn)單的方法,但是不安全
2. getpass.getpass() :
import getpass
pwd = getpass.getpass('password: ')
print pwd
# password:
# aaaa
Note: 很安全,但是看不到輸入的位數(shù),會(huì)讓人覺(jué)得有點(diǎn)不習(xí)慣,不知道的還以為沒(méi)有在輸入..
3. msvcrt.getch() :
代碼如下:
import msvcrt, sys
def pwd_input():
chars = []
while True:
newChar = msvcrt.getch()
if newChar in '\r\n':
# 如果是換行,則輸入結(jié)束
print ''
break
elif newChar == '\b':
# 如果是退格,則刪除末尾一位
if chars:
del chars[-1]
sys.stdout.write('\b')
# 刪除一個(gè)星號(hào),但是不知道為什么不能執(zhí)行...
else:
chars.append(newChar)
sys.stdout.write('*')
# 顯示為星號(hào)
print ''.join(chars)
pwd = pwd_input()
print pwd
# ******
# aaaaaa
Note: 解決了第二種方法不能顯示輸入位數(shù)的問(wèn)題,但是如果按退格鍵(backspace)的話,雖然實(shí)際的是退格了,
但控制臺(tái)卻沒(méi)有顯示相應(yīng)的退格,比如,當(dāng)前輸入是:abcd,顯示為:****,然后現(xiàn)在打一個(gè)退格鍵,實(shí)際
輸入為:abc,而顯示仍為:****。不知道為什么 sys.stdout.write('\b') 這行沒(méi)有執(zhí)行,估計(jì)是和使用msvcrt.getch()有關(guān)系。感興趣的朋友可以進(jìn)一步研究一下。
希望本文所述對(duì)大家的Python程序設(shè)計(jì)有所幫助。
相關(guān)文章
pyinstaller打包django項(xiàng)目的實(shí)現(xiàn)步驟
本文主要介紹了pyinstaller打包django項(xiàng)目的實(shí)現(xiàn)步驟,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-09-09
從訓(xùn)練好的tensorflow模型中打印訓(xùn)練變量實(shí)例
今天小編就為大家分享一篇從訓(xùn)練好的tensorflow模型中打印訓(xùn)練變量實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-01-01
利用Python實(shí)現(xiàn)生成并識(shí)別圖片驗(yàn)證碼
這篇文章主要為大家的詳細(xì)介紹了如何利用Python實(shí)現(xiàn)生成并識(shí)別圖片驗(yàn)證碼,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2024-02-02
Python 刪除連續(xù)出現(xiàn)的指定字符的實(shí)例
今天小編就為大家分享一篇Python 刪除連續(xù)出現(xiàn)的指定字符的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-06-06
python re庫(kù)的正則表達(dá)式入門(mén)學(xué)習(xí)教程
這篇文章主要給大家介紹了關(guān)于python re庫(kù)的正則表達(dá)式的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者使用python具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-03-03
Python中內(nèi)存監(jiān)控的三種實(shí)現(xiàn)方法介紹
在?Python?開(kāi)發(fā)中,對(duì)內(nèi)存使用情況進(jìn)行監(jiān)控是一項(xiàng)至關(guān)重要的任務(wù),本文為大家整理了三種常用的內(nèi)存監(jiān)控方法的實(shí)現(xiàn)與對(duì)比,有需要的可以了解下2025-02-02

