簡體   English   中英

詛咒 - 將 getstr 輸入替換為 *(星號)

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM