我怎样才能使副帕瑟是必需的?

2024-09-27 20:20:53 发布

您现在位置:Python中文网/ 问答频道 /正文

我想确保至少选择了一个子命令。但是add\u subparsers()没有必需的选项。如何强制至少选择一个子parser

目前我这样做是为了模仿效果:

subparsers = parser.add_subparsers(
    title='sub commands',
    help='valid sub commands',
)
subparser1 = subparsers.add_parser('subcmd1')
subparser1.set_defaults(which_subcmd='subcmd1')
subparser2 = subparsers.add_parser('subcmd2')
subparser2.set_defaults(which_subcmd='subcmd2')
parsedargs = parser.parse_args()
if 'which_subcmd' not in parsedargs:
    parser.print_help()

但是我需要一种正式的方法来实现这一点,并使帮助内容显示为{subcmd1 | subcmd2}

更新:

根据@hpaulj,3.7中有必选项。但是我需要一些可以在python3.5和3.6中工作的解决方案


Tags: addparserwhich选项helpcommandsdefaultsset
1条回答
网友
1楼 · 发布于 2024-09-27 20:20:53

与其打印帮助,我更希望出现一个错误:

if which_subcmd not in parsedargs:
    msg = "Subcommands needed: subcmd1, subcmd2"
    raise argparse.ArgumentTypeError(msg)

这种方法与其他argparse错误更加一致。但只是品味的问题。只要在print_help()语句之后退出脚本,我就看不出您的方法有任何错误

相关问题 更多 >

    热门问题