0
我似乎无法弄清楚如何在脚本中调用add_user()
函数并将所有参数传递给它。如果我这样做没有从parse_args()中的subparser返回名称空间
if args.adduser:
add_user(username, account, groups)
它没有找到adduser
Namespace
。
AttributeError: 'Namespace' object has no attribute 'adduser'
不过,如果我添加此
parser_adduser.set_defaults(func=add_user)
它似乎执行add_user()
功能,但没有通过任何的参数。
def parse_args():
helptext = 'Script to Add, Delete, Update AWS Users'
parser = argparse.ArgumentParser(description=helptext,
prog='aws-IAM-user.py',
usage='%(prog)s [position] [-u] [optional]',
conflict_handler='resolve',)
parser.add_argument('-v', '--version',
dest='version')
subparsers = parser.add_subparsers(title='Main commands',
help='MORE INFO: [COMMAND] -help')
parent_parser = argparse.ArgumentParser(add_help=False)
parent_parser.add_argument('-u', '--username',
dest='username',
action='store',
help='list a single user or multiple users, '
'seperated by space',
nargs='+',
required=True)
parent_parser.add_argument('-a', '--account',
dest='account',
action='store',
nargs='+',
help='Specify Account(s).'
' Default is to use all available')
# 'Add User Parsers'
parser_adduser = subparsers.add_parser('adduser',
parents=[parent_parser],
help='adduser -u USER -a ACCOUNT -g GROUP.'
' Passwords are auto-gen')
parser_adduser.add_argument('-g', '--group',
dest='groups',
nargs='+',
help='specify group(s) seperated by space')
parser_adduser.set_defaults(func=add_user)
return parser.parse_args()
if __name__ == '__main__':
args = parse_args()
config = ConfigParser.RawConfigParser()
config.read(AWS_CONFIG_FILE)
username = args.username
account = args.account
我不知道,如果我只是愚蠢,但我似乎无法弄清楚如何使用adduser
调用脚本,并通过同时使用subparser
的功能,我想用这样所有标志厉害。
那就是它。谢谢。谢谢。 **谢谢** –
@JenniferBasalone - 没问题。我很乐意帮助:-)。 – mgilson