1. 程式人生 > 其它 >Python入門之——getpass模組

Python入門之——getpass模組

技術標籤:# python基礎

getpass模組提供了平臺無關的在命令列下輸入密碼的方法; 該模組主要提供:

  • 兩個函式: getuser, getpass
  • 一個報警: GetPassWarning(當輸入的密碼可能會顯示的時候丟擲,該報警為UserWarning的一個子類)
    在這裡插入圖片描述
    備註: 上面為密碼顯示時丟擲的報警

getpass.getuser()
該函式返回登陸的使用者名稱,不需要引數
該函式會檢查環境變數LOGNAME,USER,LNAME 和USERNAME, 以返回一個非空字串。如果這些變數的設定為空的話,會從支援密碼的資料庫中獲取使用者名稱,否則會觸發一個找不到使用者的異常!
在這裡插入圖片描述


getpass.getpass([prompt[, stream]])
會顯示提示字串, 關閉鍵盤的螢幕回顯,然後讀取密碼
可帶提示符, 不帶提示符,則會輸入預設提示符’Password: ’
在Linux/Unix系統, 提示符會寫入到類檔案流中,預設寫入到/dev/tty, 如果寫入不了的話,會寫入到sys.stderr中。如果調getpass()函式時顯示密碼時,會丟擲一個GetPassWarning報警,該報警從sys.stdin中讀取
在這裡插入圖片描述
備註: 通過IDLE中來調getpass函式,會顯示輸入的密碼,必須在Python Shell或Windows下的CMD才不會顯示密碼
例:

import
getpass def check_user (user,password): if user =='xubao' and password=='1234': print('UserName:%s;Password:%s'%(user,password)) return True else: return False op=True while __name__=="__main__"and op: usr=getpass.getuser() pwd=getpass.getpass('Enter your password:'
) if check_user(usr,pwd): print('OK') op=False else : print('ERROR and try again')