如何在python中隐藏密码

时间:2015-04-29 15:44:08

标签: 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

3 个答案:

答案 0 :(得分:5)

这家伙应该解决你的问题: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)

答案 1 :(得分:0)

您应该重命名进程名称。也许您正在寻找这个:

pip install setproctitle

https://github.com/dvarrazzo/py-setproctitle

答案 2 :(得分:-1)

简短回答:不,你不能!

argparse模块不打算这样做。 您应该在其他分离的进程中询问密码。 此外,type参数只是存储值之前使用的值转换器。