当用户在控制台中运行脚本时,我需要隐藏密码(如下所示:
mysql -p).
对于输入参数我使用argparse,如何将getpass添加到密码参数?
parser = argparse.ArgumentParser() parser.add_argument('-p',action='store',dest='password',type=getpass.getpass())
当我运行我的脚本时:python script.py -u User -p
我输入单独的输入密码行(密码:)但输入加密后异常:ValueError:’my_password’不可调用
解决方法
这家伙应该解决你的问题:
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)