如何解决可以让 Getch或类似的东西接受退格键吗?
我使用以下函数 getPass() 来输入安全密码:
def getPass():
password = ''
while True:
x = getch.getch()
# x = msvcrt.getch().decode("utf-8")
if x == '\r' or x == '\n':
break
print('*',end='',flush=True)
password += x
return password
然而,一个问题是退格不被接受,除非作为新字符:
现实生活中的退格是这样显示的:(“|”符号用于参考)
之前:
••••|
之后:
••• |
但是当我执行 getpass()
时,它在控制台中显示如下:
之前:
****|
然后你按退格键,会变成什么
*** |
实际上变成了
****|*
(注意额外的星星)。
也许我应该将解决方案保留为 print('Type your password:\n(Backspace not accepted: Press Enter to redo))
将用户置于循环中,但这对 21 世纪的用户来说非常烦人。
解决方法
我可以使用标准的 getpass() 模块。
from getpass import getpass
def getPass():
password = getpass.getpass('Enter Your Password\n>>>')
return password
password = getpass()
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。