让Python的argparse接受子解析器的单字符缩写?

7

我正在使用argparse出色的子解析器系统来创建一个可以接受许多不同命令的命令行程序。据我了解,当参数没有歧义时,argparse会自动接受单字符缩写。我希望它也能对子解析器做同样的事情。如果我像这样设置我的子解析器:

    foo_parser = subparsers.add_parser('foo')
    # ... set up arguments and handler ...

    bar_parser = subparsers.add_parser('bar')
    # ... set up arguments and handler ...

我希望解析器可以接受myprogram f arg0作为myprogram foo arg0的无歧义缩写。但实际上它不会这样做。

有什么想法吗?

1个回答

13

虽然从argparse文档中并不清楚它是否支持子解析器的自动缩写,但是您可以像这样显式地设置别名:

foo_parser = subparsers.add_parser('foo', aliases=['f'])

另一方面,参数缩写是被支持的


7
这正是我所需要的,不幸的是它仅支持Python 3。 - japreiss

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