Python:argparse子命令?
我有一个有很多选择的程序。 例如,使用配置选项更改设置Python:argparse子命令?,python,arguments,argparse,Python,Arguments,Argparse,我有一个有很多选择的程序。 例如,使用配置选项更改设置 ./app config -h 使用普通的argparse子命令为我提供帮助 现在,我想向config子命令添加另一个名为list的子命令,以列出配置值 ./app config list 另外,这个命令应该接受另一个选项,这样我就可以说 ./app config list CATEGORY 仅列出一个类别的配置 我现在的代码基本上就是这样,只需要更多的命令 >>> parser = argparse.Argumen
./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)
如果您将代码发布在此处会更好,以帮助其他人了解您的问题。我建议大家查看我使用2.7.2尝试的单击库。我当然想知道您是否有问题:)