【问题标题】:How to make `help` act the same as `--help` in argparse如何使`help`与argparse中的`--help`作用相同
【发布时间】:2011-11-21 20:12:09
【问题描述】:

我希望help 选项的作用与--help 相同。

旁注:我创建了一个与 svn 或 hg 具有相同命令行行为的程序。我设法用子解析器做到了这一点。但是我想让事情保持一致。这就是我希望help 工作的原因。

【问题讨论】:

  • 您的意思是您希望能够致电help('mymodule')help(mymodule)
  • 严格来说,help 是一个参数,选项分别以'-'和'--'为前缀。你的意思是像if 'help' in sys.argv: sys.exit('help ...')这样的东西吗?

标签: python alias argparse


【解决方案1】:

您可以执行以下操作来创建别名并使program help 的行为与program --help 相同

import argparse

def help(args):
    args.parser.print_help()

parser = argparse.ArgumentParser(description='my program')
subparsers = parser.add_subparsers()
p_help = subparsers.add_parser('help')
p_help.set_defaults(func=help, parser=parser)

args = parser.parse_args()
args.func(args)

【讨论】:

    【解决方案2】:

    在我看来,您想将help 定义为另一个子解析器。我会天真地说,然后您可以将其链接到 print_help() 函数,该函数将复制标准 --help 的输出,但我想知道是否有一种方法可以调用本机 help() 函数。

    【讨论】:

    • 我也是。与此同时,我认为有一种比为每个参数创建子解析器更快的方法(就像 --help 所做的那样)。
    猜你喜欢
    • 1970-01-01
    • 2013-09-21
    • 2012-08-22
    • 2020-04-14
    • 2019-11-25
    • 2014-01-30
    • 2019-09-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多