![](/img/trans.png)
[英]Python fabric passing root password as command line argument doesn't work
[英]Is there method such that password won't be echoed on cmd while passing it as command line argument?
我正在尝试构建一个 Python 应用程序以在各种平台上运行,为此我正在为参数添加命令行选项,其中两个是用户名和密码。 对于密码,我不希望它在有人输入时在屏幕上回显,我正在使用 argparse
示例代码-
parser.add_argument('--username', help='Your email address')
parser.add_argument('--password', help='Your password')
现在我应该添加什么参数/操作来使密码在输入时不可见/不在屏幕上回显?
在python中,我们可以使用getpass如下:
>>> import getpass
# parse arguments here
>>> user = args.username # e.g. Sam
>>> password = getpass.getpass('Enter %s password: '% user)
Enter Sam password:
>>>
你想要做的是这个,
class Password(argparse.Action):
def __call__(self, parser, namespace, values, option_string):
values = getpass.getpass()
setattr(namespace, self.dest, values)
parser = argparse.ArgumentParser()
parser.add_argument('--password', action=Password, nargs='?', dest='password')
args = parser.parse_args()
password = args.password
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.