有没有一种方法可以在用户输入星号时转换字符,就像在许多网站上看到的那样?
例如,如果要求电子邮件用户登录其帐户,则在输入密码时,它不会显示为字符,而是显示*在每个单独的笔划之后,没有任何时间延迟.
如果是实际密码KermitTheFrog,则会*************在输入时显示.
pp_*_*pp_ 21
有getpass()一个隐藏用户输入的功能.
import getpass
password = getpass.getpass()
print(password)
Run Code Online (Sandbox Code Playgroud)
如果您想要一个适用于 Windows/macOS/Linux 和 Python 2 和 3 的解决方案,您可以安装该stdiomask模块:
pip install stdiomask
Run Code Online (Sandbox Code Playgroud)
与getpass.getpass()(在 Python 标准库中)不同,该stdiomask模块可以在您键入时显示 *** 掩码字符。
用法示例:
>>> stdiomask.getpass()
Password: *********
'swordfish'
>>> stdiomask.getpass(mask='X') # Change the mask character.
Password: XXXXXXXXX
'swordfish'
>>> stdiomask.getpass(prompt='PW: ', mask='*') # Change the prompt.
PW: *********
'swordfish'
>>> stdiomask.getpass(mask='') # Don't display anything.
Password:
'swordfish'
Run Code Online (Sandbox Code Playgroud)
不幸的是,这个模块与 Python 的内置getpass模块一样,在 IDLE 或 Jupyter Notebook 中不起作用。
更多详情请访问https://pypi.org/project/stdiomask/
小智 8
如果你使用Tkinter :(这是Python 2.x.但是,3.x会非常相似)
from Tkinter import Entry, Tk
master = Tk()
Password = Entry(master, bd=5, width=20, show="*")
Password.pack()
master.mainloop()
Run Code Online (Sandbox Code Playgroud)
在shell中,这是不可能的.但是,您可以编写一个函数来存储输入的文本,并在调用时仅报告*的字符串. 有点像这样,我没有写.我只是用谷歌搜索它.
| 归档时间: |
|
| 查看次数: |
23688 次 |
| 最近记录: |