首页 > 解决方案 > argparser 中的二阶嵌套子解析器

问题描述

我正在尝试使用 Argparse 做二阶子解析器,但它没有看到这个二阶子解析器的参数。

我的代码是这样的:

import argparse

parser = argparse.ArgumentParser()
subparsers = parser.add_subparsers(title="title", description="description")
parser1 = subparsers.add_parser("pars1")
parser1.add_argument("argA")
parser2 = subparsers.add_parser("pasr2")
parser2.add_argument("argB")
subparser2 = parser2.add_subparsers(title="subpars1", description="descr1")
parser3 = subparser2.add_parser("pars3")
parser3.add_argument("argC")
parser3.add_argument("argD")
args = parser.parse_args()

并且在帮助argCargD不可见。所以我收到这个

./prog.py pars2 pars3 -h
positional arguments:
argB

subpars1:

{pars3}
pars3

而是这个

./prog.py pars2 pars3 -h
positional arguments:
argB

subpars1:

{pars3}
argC
argD

我的错误在哪里,或者只是 Argparse 不支持二阶子解析器?

标签: python-3.xargparse

解决方案


推荐阅读