我有一个有很多可用选项的程序.
例如,用于更改设置的配置选项.
例如,用于更改设置的配置选项.
./app config -h
使用普通的argparse子命令给我帮助
现在我想在config子命令中添加另一个子命令,名为list以列出配置值
./app config list
此外,该命令应该接受另一个选项,以便我可以说
./app config list CATEGORY
仅列出一个类别的配置
我现在的代码基本上就是这个命令
>>> parser = argparse.ArgumentParser() >>> subparsers = parser.add_subparsers(title='subcommands',... description='valid subcommands',... help='additional help') >>> subparsers.add_parser('foo') >>> subparsers.add_parser('bar') >>> parser.parse_args(['-h']) usage: [-h] {foo,bar} ... optional arguments: -h,--help show this help message and exit subcommands: valid subcommands {foo,bar} additional help
到目前为止,我找不到在子命令中使用子命令的任何方法.
如果这是可能的,怎么样?如果没有,还有其他方法可以实现这一目标吗?
提前致谢
解决方法
#file: argp.py import argparse parser = argparse.ArgumentParser(prog='PROG') parser_subparsers = parser.add_subparsers() sub = parser_subparsers.add_parser('sub') sub_subparsers = sub.add_subparsers() sub_sub = sub_subparsers.add_parser('sub_sub') sub_sub_subparsers = sub_sub.add_subparsers() sub_sub_sub = sub_sub_subparsers.add_parser('sub_sub_sub')
似乎工作.
In [392]: run argp.py In [393]: parser.parse_args('sub sub_sub sub_sub_sub'.split()) Out[393]: Namespace() In [400]: sys.version_info Out[400]: sys.version_info(major=2,minor=7,micro=2,releaselevel='final',serial=0)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。