如何防止用户输入的密码显示在屏幕上?

问题描述:

我想创建一个实用程序,但密码输入正确后会转到主屏幕,并在其上方显示密码!有没有什么办法可以在程序进入主菜单之前自动让程序清除外壳?如何防止用户输入的密码显示在屏幕上?

+2

输入正确的方法密码是'stty的-echo'。然后清除屏幕将不是必需的。 – tripleee 2013-05-04 08:10:50

您可以使用subprocess模块根据您的操作系统执行"clear"(linux/mac)或"cls"(windows)命令。

>>> import subprocess,sys 
>>> if sys.platform in ("linux2", "linux", "darwin"): #for linux/mac 
...  subprocess.call("clear") 
... elif sys.platform.statswith("win"): #for windows 
...  subprocess.call("cls") 

可能sys.platform值的列表:

System    platform value 
Linux (2.x and 3.x) 'linux2' 
Linux (py 3.3)  'linux' 
Windows    'win32' 
Windows/Cygwin  'cygwin' 
Mac OS X    'darwin' 
OS/2     'os2' 
OS/2 EMX    'os2emx' 
RiscOS    'riscos' 
AtheOS    'atheos' 
+0

我可能推荐使用'try:except:'块来尝试linux/mac方法,然后在异常时使用windows方法?它应该特别提出一个'OSError'。这可能会使它更便携。 – SethMMorton 2013-05-04 06:52:18

+0

@SethMMorton'sys.platform'是一个更好的选择。 – 2013-05-04 06:56:51

+0

我认为'重置'命令是一个更好的选择。 – wei2912 2013-05-04 06:57:32