getpass — 行動式密碼輸入

原始碼: Lib/getpass.py


可用性:非 WASI。

此模組在 WebAssembly 上不起作用或不可用。有關更多資訊,請參閱 WebAssembly 平臺

getpass 模組提供了兩個函式:

getpass.getpass(prompt='Password: ', stream=None, *, echo_char=None)

提示使用者輸入密碼並不回顯。會使用字串 prompt 來提示使用者,其預設值為 'Password: '。在 Unix 上,提示資訊會使用 replace 錯誤處理控制代碼(如果需要)寫入到檔案類物件 stream 中。stream 預設為控制終端 (/dev/tty),如果不可用則預設為 sys.stderr (此引數在 Windows 上會被忽略)。

echo_char 引數控制使用者輸入時如何顯示。如果 echo_charNone (預設值),輸入將保持隱藏。否則,echo_char 必須是單個可列印的 ASCII 字元,每個鍵入的字元都將被其替換。例如,echo_char='*' 將顯示星號而不是實際輸入。

如果無回顯輸入不可用,getpass() 將回退到向 stream 列印一條警告訊息並從 sys.stdin 讀取,同時發出 GetPassWarning 警告。

備註

如果你在 IDLE 中呼叫 getpass,輸入可能會在啟動 IDLE 的終端中進行,而不是在 IDLE 視窗本身。

備註

在 Unix 系統上,當設定 echo_char 時,終端將被配置為在非規範模式下執行。特別地,這意味著像 Ctrl+U 這樣的行編輯快捷鍵將無法工作,並可能在輸入中插入意外的字元。

在 3.14 版本發生變更: 為鍵盤反饋添加了 echo_char 形參。

exception getpass.GetPassWarning

一個 UserWarning 的子類,在密碼輸入可能被回顯時發出。

getpass.getuser()

返回使用者的“登入名”。

此函式會依次檢查環境變數 LOGNAME, USER, LNAMEUSERNAME,並返回第一個被設為非空字串的變數的值。如果這些變數都沒有設定,在支援 pwd 模組的系統上會返回密碼資料庫中的登入名,否則會引發 OSError

通常,應優先使用此函式而不是 os.getlogin()

在 3.13 版本發生變更: 之前,除了 OSError 外,還會引發各種其他異常。