如何让我的 argparse 子解析器格式像在列表中而不是在一行中?
How to get my argparse subparsers format be like in a list and not on one single line?
我有这个代码作为测试
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
他们有任何解决方法或方法吗?
您必须像下面这样更改您的代码。 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()
我有这个代码作为测试
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
他们有任何解决方法或方法吗?
您必须像下面这样更改您的代码。 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()