【问题标题】:Make Python's argparse accept single-character abbreviations for subparsers?让 Python 的 argparse 接受子解析器的单字符缩写?
【发布时间】:2012-11-16 13:01:50
【问题描述】:

我正在使用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 的明确缩写。但事实并非如此。

有什么想法吗?

【问题讨论】:

    标签: python command-line argparse


    【解决方案1】:

    从 argparse 文档中不清楚它是否支持 subparser 的这种自动缩写,但您可以像这样显式设置别名:

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

    另一方面,参数的缩写是supported

    【讨论】:

    • 这是我需要的,不幸的是它只在 Python 3 中被支持。
    猜你喜欢
    • 2018-12-31
    • 2018-04-23
    • 2013-12-21
    • 2013-10-07
    • 2020-12-04
    • 2011-09-09
    • 1970-01-01
    • 2013-08-31
    • 2015-07-17
    相关资源
    最近更新 更多