2016-03-04 175 views
4

有没有办法在Python中将字符转换为星号,就像它可以在很多网站上看到的一样?如何在密码输入时将密码转换为星号?

例如,如果某个电子邮件用户在输入密码时被要求登录他们的帐户,它不会显示为字符,而会在每个笔画后显示为*而没有任何时间延迟。

如果实际的密码是KermitTheFrog,它会在键入时显示为*************

+3

这对我来说非常模糊 - 你的输入源是什么?一个网页?终奌站? tkinter文本区域?是的,但每个人都有所不同 –

+0

我实际上是在为一个学校项目做这个工作,我是一个非常基本的程序员......但是我会尝试使用tkinter文本区域,所以如果你能够帮助它的话'd be great – LeroyJD

回答

11

getpass(),一个函数,它用户输入。

import getpass 

password = getpass.getpass() 
print(password) 
+5

该死的很好。我不知道这件事,我感到很愚蠢。 – Rockybilly

+1

这是很棒的东西。 – innoSPG

+1

非常感谢您的帮助:D。 – LeroyJD

2

您可能需要检查getpass函数。

提示用户输入密码而不回显。使用字符串提示(默认为'Password:')提示用户 。在Unix上, 提示被写入类文件对象流。流默认为 控制终端(/ dev/tty),或者 sys.stderr(在Windows上忽略此参数)不可用。

注意:此模块模仿unix密码提示并且不显示星号。

用法:

import getuser 
getuser.getpass() 
+0

谢谢你的伴侣:D – LeroyJD

5

如果您使用Tkinter的:(这是Python的2.x的。然而,3.x的将是非常相似)

from Tkinter import * 

master = Tk() 

PassWord = Entry(master, bd=5, width=20, show="*") 
PassWord.pack() 

master.mainloop() 

在shell中,这是不是可能。然而,你可以编写一个函数来存储输入的文本,并在被调用时只报告一串*。 Kinda like this,我没有写。我只是谷歌搜索。

+0

非常感谢:D ...即使它不在外壳中,它的作用就像一个魅力,我想我可能实际上在我的程序中使用了tk gui:D – LeroyJD

+3

虽然通配符导入似乎使代码更整齐,更整齐,[使用它被认为是一个不好的做法](http://stackoverflow.com/questions/14626674/in-python-is-it-a-good-practice-to -import-所有的属性上带有一个通配符)。 – Reti43

相关问题