我正在构建一个有几个子parser的软件,我希望那些子parser具有不同的convert_arg_line_to_args
定义,所以我所做的是替换解析器的功能,考虑到所选的子parser:
parser = ArgumentParser(fromfile_prefix_chars='@')
subparsers = parser.add_subparsers(title='Available sub commands')
sub_parser = subparsers.add_parser("sub1", help="sub1")
sub_parser.add_argument("--paramsub1", required=True, dest="paramsub1")
sub_parser.set_defaults(cmd_object="sub1")
sub_parser = subparsers.add_parser("sub2", help="sub2")
sub_parser.add_argument("--paramsub2", required=True, dest="paramsub2")
sub_parser.set_defaults(cmd_object="sub2")
我希望argparse不要检查参数,但请告诉我选择了哪个子parser:
^{pr2}$有什么想法吗?
是否要检查子parser名称以便设置
convert_arg_line_to_args
函数?相反,您可以在安装过程中更改该功能。在这个装置怎么样?在
{从解析器移到子pars}。这样解析器就不会试图读取参数文件。在
通常需要的参数被定义为
positional
(不带)。在
使用
dest='cmd_object'
将子parser名称放入命名空间中。sest_defaults
也可以工作,但当您想将该值设置为函数(或其他非字符串)时,它更有用。在相关问题 更多 >
编程相关推荐