繁体   English   中英

有没有方法可以在将密码作为命令行参数传递时在 cmd 上回显密码?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM