【问题标题】:Argparse combine --help directivesargparse 结合 --help 指令
【发布时间】:2022-05-11 20:34:53
【问题描述】:

我目前正在构建一个现有库的扩展,该库使用argparse.ArgumentParser() 提取cli 参数,并添加了我自己的argparse.ArgumentParser() 使用parse_known_args() 解析出我想在传递剩余参数之前注入的参数到现有图书馆的实施。我这样做而不是向底层库添加参数,这样如果底层库发生变化,一切都应该仍然有效。

但是,当我传入 --help 标志时,argparse.ArgumentParser() 的实现会抓取该标志,打印出我注入的参数的帮助,然后中断执行,因此它永远不会获得底层库的帮助消息。

我无法确定是否有办法将两个argparse.ArgumentParser() 实现的帮助指令结合起来(如果可能的话),或者如何在我的实现中忽略帮助标志。我添加的参数仅用于调试,对于向我的扩展库的最终用户显示并不重要,因此如果有一种方法可以在我的实现中忽略帮助标志,那将是可以的,但并不理想。

【问题讨论】:

标签: python python-2.7 argparse


【解决方案1】:

我认为这可能是您问题的答案。 add_help=False,但添加到子命令和子解析器中。 Python argparse - disable help for subcommands?

【讨论】:

  • 不完全是,这是用于 argparse 中的子处理器。但是,我确实相信将我的模型更改为使用子处理器可能是我在“组合”定义的 argparse 实现时所寻找的。我要试试看。
  • 让我知道它是否有效。这就是我的想法。
【解决方案2】:

您需要将parents 参数传递给后续的解析器。我刚刚在这里发布了一个类似问题的答案:

Argparse: is it possible to combine help texts from multiple parsers?

【讨论】:

    猜你喜欢
    • 2018-01-25
    • 2011-11-21
    • 2019-11-25
    • 2013-09-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-06
    • 2012-08-22
    相关资源
    最近更新 更多