[英]Curses - Replace getstr input to * (Asterisks)
我希望getstr在按下某個鍵時顯示 * (星號),基本上就像一個密碼登錄表單。 關於如何做到這一點的任何線索? (類似於getpass )
所以如果我輸入abcd它會返回 **** (abcd)
不知道這個問題有沒有回答。
您可以通過 getch() 將用戶的輸入作為一系列字符
然后在每次輸入后打印 *
[編輯]:
忘記處理退格鍵:-
請參考以下更健壯的代碼:
import sys
import msvcrt
def encriptAndsavePassword():
password = ''
while True:
x = ord(msvcrt.getch())
if x == 13:
# When system receives a carriage return character
sys.stdout.write('\n')
return password
elif x == 8:
if len(password) > 0:
# Deletes previous character.
sys.stdout.write('\b' + ' ' + '\b')
sys.stdout.flush()
password = password[:-1]
else:
sys.stdout.write('*')
password +=x
你可以從這里閱讀getch()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.