我可以添加ArgumentParser来解析子命令吗?

时间:2018-09-03 18:28:31

标签: python parameter-passing argparse subcommand

对于我的玩具项目mpu,我想要以下命令:

# Creates a Python project based on a template
$ mpu init

# Checks a Python project for style 
$ mpu stylecheck

因此,假设我有一个命令run_init()和一个命令run_stylecheck(),还有一个名为argparse.ArgumentParser的{​​{1}}对象:

parser

如何向其添加这两个命令?

限制

请不要提出建议手动def run_init(): print('init is executed') def run_stylecheck(): print('stylecheck is executed') def get_parser(parser=None): """Get parser for packaging part.""" from argparse import ArgumentParser, ArgumentDefaultsHelpFormatter if parser is None: parser = ArgumentParser(description=__doc__, formatter_class=ArgumentDefaultsHelpFormatter) subparsers = parser.add_subparsers(dest='subparser_name') pkg_init_parser = subparsers.add_parser('init') return parser get_parser().parse_args() 解析的解决方案,也建议不要sys.argv解析。第一个选项不是一个选项,因为它很难扩展,第二个选项不是一个选项,因为我特别不想使用外部依赖关系-尽管click很棒。

https://stackoverflow.com/a/27529806/562769我认为也不是一种选择,因为这将有很多不同的命令,并且提供解析器对象的子模块将不会调用该对象。

0 个答案:

没有答案