如何使`help`在argparse中与`--help`的功能相同

4
我希望“help”选项与“--help”选项的功能相同。
附注:我创建了一个具有与svn或hg相同命令行行为的程序。我使用子解析器实现了这一点。但是,我希望使事情更加一致。这就是为什么我希望“help”选项可用的原因。

你的意思是想要调用 help('mymodule') 或者 help(mymodule) 吗? - Remi
1
严格来说,“help”将是一个参数,选项分别以“-”和“--”为前缀。你的意思是类似于if 'help' in sys.argv: sys.exit('help ...')这样的吗? - jena
2个回答

4
您可以通过以下方式创建别名,使得 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)

0

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


我也是。同时,我认为有一种比为每个参数创建一个子解析器更快的方法(如--help所示)。 - SamK

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接