您好,登錄后才能下訂單哦!
這篇文章主要介紹了Python中getpass模塊無回顯輸入的示例分析,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。
getpass模塊
getpass.getpass(prompt='Password: ‘, stream=None)
調用該函數可以在命令行窗口里面無回顯輸入密碼。參數prompt代表提示字符串,默認是'Password: ‘。在Unix系統中,stream默認為當前控制的終端。在Windows系統里stream參數會被忽略掉,默認使用stdin。如果無法正常使用getpass,會打印錯誤信息,然后模塊會使用有回顯的模式讀取數據。
>>> import getpass >>> passwd = getpass.getpass() Password: >>> print(passwd) ganziqim
getpass.getuser()
返回當前用戶名。這個函數會按順序檢查環境變量LOGNAME, USER, LNAME和USERNAME。返回第一個非空的值。如果檢查不到非空的值,模塊會嘗試導入pwd模塊,如果系統支持pwd模塊,會返回通過pwd模塊獲取的用戶名,否則報錯。
>>> getpass.getuser() 'ganzi'
一些細節
1.getpass模塊內部其實實現了unix_getpass、win_getpass和fallback_getpass三個函數。在模塊被導入之后會首先對用戶使用的系統進行檢查,將相應的函數賦值給getpass。如果檢查失敗,則將fallback_getpass賦值給getpass。
2.win_getpass使用msvcrt.getwch()獲取無回顯輸入。
3.fallback_getpass不僅在一開始檢查系統的時候被調用,當另外兩個函數出現錯誤的時候也會調用它。而調用了fallback_getpass又會先打印錯誤信息,然后再調用模塊內部的_raw_input函數進行有回顯的輸入讀取。
這個是寫在模塊底部的系統檢查代碼:
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
感謝你能夠認真閱讀完這篇文章,希望小編分享的“Python中getpass模塊無回顯輸入的示例分析”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,更多相關知識等著你來學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。