新聞中心
這篇文章主要介紹了Python中g(shù)etpass模塊無回顯輸入的示例分析,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。
getpass模塊
getpass.getpass(prompt='Password: ‘, stream=None)
調(diào)用該函數(shù)可以在命令行窗口里面無回顯輸入密碼。參數(shù)prompt代表提示字符串,默認(rèn)是'Password: ‘。在Unix系統(tǒng)中,stream默認(rèn)為當(dāng)前控制的終端。在Windows系統(tǒng)里stream參數(shù)會被忽略掉,默認(rèn)使用stdin。如果無法正常使用getpass,會打印錯誤信息,然后模塊會使用有回顯的模式讀取數(shù)據(jù)。
>>> import getpass >>> passwd = getpass.getpass() Password: >>> print(passwd) ganziqim
getpass.getuser()
返回當(dāng)前用戶名。這個函數(shù)會按順序檢查環(huán)境變量LOGNAME, USER, LNAME和USERNAME。返回第一個非空的值。如果檢查不到非空的值,模塊會嘗試導(dǎo)入pwd模塊,如果系統(tǒng)支持pwd模塊,會返回通過pwd模塊獲取的用戶名,否則報錯。
>>> getpass.getuser() 'ganzi'
一些細(xì)節(jié)
1.getpass模塊內(nèi)部其實實現(xiàn)了unix_getpass、win_getpass和fallback_getpass三個函數(shù)。在模塊被導(dǎo)入之后會首先對用戶使用的系統(tǒng)進(jìn)行檢查,將相應(yīng)的函數(shù)賦值給getpass。如果檢查失敗,則將fallback_getpass賦值給getpass。
2.win_getpass使用msvcrt.getwch()獲取無回顯輸入。
3.fallback_getpass不僅在一開始檢查系統(tǒng)的時候被調(diào)用,當(dāng)另外兩個函數(shù)出現(xiàn)錯誤的時候也會調(diào)用它。而調(diào)用了fallback_getpass又會先打印錯誤信息,然后再調(diào)用模塊內(nèi)部的_raw_input函數(shù)進(jìn)行有回顯的輸入讀取。
這個是寫在模塊底部的系統(tǒng)檢查代碼:
try: import termios termios.tcgetattr, termios.tcsetattr except (ImportError, AttributeError): try: import msvcrt except ImportError: getpass = fallback_getpass else: getpass = win_getpass else: getpass = unix_getpass
感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享的“Python中g(shù)etpass模塊無回顯輸入的示例分析”這篇文章對大家有幫助,同時也希望大家多多支持創(chuàng)新互聯(lián)成都網(wǎng)站設(shè)計公司,關(guān)注創(chuàng)新互聯(lián)成都網(wǎng)站設(shè)計公司行業(yè)資訊頻道,更多相關(guān)知識等著你來學(xué)習(xí)!
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、網(wǎng)站設(shè)計器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。
分享題目:Python中g(shù)etpass模塊無回顯輸入的示例分析-創(chuàng)新互聯(lián)
網(wǎng)址分享:http://www.ef60e0e.cn/article/gseso.html