ユーザーがユーザー名とパスワードを入力するように求められるログインウィンドウを作成しようとしていますが、パスワードを入力すると、一般的なパスワード入力のように印刷されるアスタリスクを探しています (つまり、Sekr3t は次のようにエコーされます: * * * * * *)。
ここに私がこれまでに持っているコードがありますが、アスタリスクをエコーしない理由がわかりません:
import msvcrt
import sys
def login(prompt = '> '):
write = sys.stdout.write
for x in prompt:
msvcrt.putch(x)
passw = ""
while 1:
x = msvcrt.getch()
if x == '\r' or x == '\n':
break
if x == '\b':
# position of my error
passw = passw[:-1]
else:
write('*')
passw = passw + x
msvcrt.putch('\r')
msvcrt.putch('\n')
return passw
どんな助けでも大歓迎です。