在写python程序时,有时需要和用户进行交互,需要让用户输入用户名和密码。
- 当然这个操作还是比较简单的,但是如果不做处理的话,就会有问题,用户输入用户名的时候没什么问题,但是用户输入密码的时候密码就会想用户名一样显示出来,这往往是不安全的,则需要导入 python 中自带的模块 getpass 来解决这个问题。
优化前的代码:
[root@localhost untitled]# vim user.py username = input('请输入用户名: ') password = input('请输入密码: ') print('-' * 50) print('您输入的用户名为: %s' % (username)) print('您输入的密码为: %s' % (password)) [root@localhost untitled]# python3 user.py 请输入用户名: 梁炳川 请输入密码: 123qqq...A -------------------------------------------------- 您输入的用户名为: 梁炳川 您输入的密码为: 123qqq...A
优化后的代码:
[root@localhost untitled]# vim user.py import getpass # 导入getpass模块 username = input('请输入用户名: ') password = getpass.getpass('请输入密码: ') print('-' * 50) print('您输入的用户名为: %s' % (username)) print('您输入的密码为: %s' % (password)) [root@localhost untitled]# python3 user.py 请输入用户名: 梁炳川 请输入密码: -------------------------------------------------- 您输入的用户名为: 梁炳川 您输入的密码为: 123qqq...A
Shell也可以实现这个功能,代码如下:
#!/bin/bash read -p "请输入用户名: " username stty -echo read -p "请输入密码: " password stty echo