有没有方法可以在将密码作为命令行参数传递时在 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')
现在 parameter/action 我应该添加什么来使输入密码 invisible/not 在屏幕上回显?
在python中,我们可以使用getpass如下:
>>> import getpass
# parse arguments here
>>> user = args.username # e.g. Sam
>>> password = getpass.getpass('Enter %s password: '% user)
Enter Sam password:
>>>
你想做的是this,
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
我正在尝试在各种平台上为 运行 构建一个 Python 应用程序,为此我正在为参数添加命令行选项,其中两个是用户名和密码。 对于密码,我不希望它在有人输入时在屏幕上回显,我正在使用 argparse
示例代码-
parser.add_argument('--username', help='Your email address')
parser.add_argument('--password', help='Your password')
现在 parameter/action 我应该添加什么来使输入密码 invisible/not 在屏幕上回显?
在python中,我们可以使用getpass如下:
>>> import getpass
# parse arguments here
>>> user = args.username # e.g. Sam
>>> password = getpass.getpass('Enter %s password: '% user)
Enter Sam password:
>>>
你想做的是this,
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