使Python的argparse接受单字符缩写为subparsers?

jap*_*iss 6 python command-line argparse

我正在使用argparse优秀的subparser系统来制作一个接受许多不同命令的命令行程序.根据我的阅读,argparse当它们明确无误时,会自动接受参数的单字符缩写.我想让它为subparsers做同样的事情.如果我像这样设置我的subparser:

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

    bar_parser = subparsers.add_parser('bar')
    # ... set up arguments and handler ...
Run Code Online (Sandbox Code Playgroud)

然后我希望解析器接受myprogram f arg0作为明确的缩写myprogram foo arg0.但事实并非如此.

有任何想法吗?

Bul*_*ula 12

从argparse文档目前尚不清楚它支持这种自动缩写子分析器,但你可以明确地设置别名,就像这样:

foo_parser = subparsers.add_parser('foo', aliases=['f'])
Run Code Online (Sandbox Code Playgroud)

另一方面,支持参数缩写.

  • 这是我需要的,不幸的是它只在Python 3中得到支持. (7认同)