我想一个接一个地读char并显示给astrix*
。
字符可以显示为*
,但我不能通过按Enter退出
这是我的密码:
import sys, tty, termios
def getch():
fd = sys.stdin.fileno()
old_settings = termios.tcgetattr(fd)
try:
tty.setraw(sys.stdin.fileno())
ch = sys.stdin.read(1)
sys.stdout.write('*')
except:
print "ex"
finally:
termios.tcsetattr(fd, termios.TCSADRAIN,old_settings)
return ch
如果我输入Enterwherech = sys.stdin.read(1)
,返回值是多少
为了更安全地读取用户的密码,请检查
getpass
模块它可以简单地导入和使用如下所示。但请记住,它不会显示asterik
sys.stdin.read(1)
的返回值完全取决于您使用的控制台可以使用getpass.getpass提示用户输入密码。但是请注意,
getpass
模块没有为unix密码提示显示星号至于问题的第二部分-
sys.stdin.read(1)
返回\n
或\r
输入,这取决于您使用的终端最后,我举了一个例子,如何使用函数来读取CR或LF:
如果你真的需要在unix上显示星号,那就这样
相关问题 更多 >
编程相关推荐