如何在python中隐藏密码

当用户在控制台中运行脚本时,我需要隐藏密码(如:mysql -p)。
对于输入参数,我使用argparse,如何向密码参数添加getpass?

parser = argparse.ArgumentParser()
parser.add_argument('-p', action='store', dest='password', type=getpass.getpass())

当我运行脚本时:python script.py -u User -p
我为输入密码(Password:)获得单独的行,但在输入raise exception之后:ValueError: 'my_password' is not callable


最佳答案:

这个人应该解决你的问题:getpass
下面是一个带有自定义操作的示例

class PwdAction(argparse.Action):

     def __call__(self, parser, namespace, values, option_string=None):
         mypass = getpass.getpass()
         setattr(namespace, self.dest, mypass)

parser = argparse.ArgumentParser()
parser.add_argument('-f', action=PwdAction, nargs=0)

评论