Python:argparse子命令子命令?

前端之家收集整理的这篇文章主要介绍了Python:argparse子命令子命令?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个有很多可用选项的程序.
例如,用于更改设置的配置选项.
./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)

猜你在找的Python相关文章