代码之家  ›  专栏  ›  技术社区  ›  AmaanK

如何让我的argparse子parsers格式像一个列表,而不是一行?

  •  0
  • AmaanK  · 技术社区  · 4 年前

    我有这个代码作为测试

    import argparse
    
    
    def main():
        parser = argparse.ArgumentParser("test", description="subparser help test")
        commands = parser.add_subparsers(dest="command", title="Commands")
    
        subparser_a = commands.add_parser("parser_a", description="description_of_parser_a")
        subparser_a.add_argument("--foo")
        subparser_a.add_argument("--bar")
    
        subparser_b = commands.add_parser("parser_b", description="description_of_parser_b")
        subparser_b.add_argument("--foo-b")
        subparser_b.add_argument("--bar-b")
    
        args = parser.parse_args()
    
    
    if __name__ == '__main__':
        main()
    

    python test.py --help ,它显示了这样的东西

    usage: test [-h] {parser_a,parser_b} ...
    
    subparser help test
    
    optional arguments:
      -h, --help           show this help message and exit
    
    Commands:
      {parser_a,parser_b}
    

    但我希望它能像这样打印出来

    usage: test [-h] {parser_a,parser_b} ...
    
    subparser help test
    
    optional arguments:
      -h, --help           show this help message and exit
    
    Commands:
      parser_a             description_of_parser_a
      parser_b             description_of_parser_b
    

    1 回复  |  直到 4 年前
        1
  •  1
  •   TaeHyoung Kwon    4 年前

    你必须改变你的代码如下。 description= -&燃气轮机; help= 在里面 add_parser

    import argparse
    
    
    def main():
        ...
    
        subparser_a = commands.add_parser("parser_a", help="description_of_parser_a")
        
        ...
    
        subparser_b = commands.add_parser("parser_b", help="description_of_parser_b")
        ...
        
        args = parser.parse_args()
    
    
    if __name__ == '__main__':
        main()