gpt4 book ai didi

python - 如何使用argparse python为两个类别设置不同的强制性参数?

转载 作者:行者123 更新时间:2023-12-03 23:02:06 26 4
gpt4 key购买 nike

我正在处理 python 脚本,我需要根据传递的输入参数做两件事:

  • 推送:这将调用一个 api 来发布一些数据。
  • 状态:这将调用另一个 api 来检查数据并在控制台上打印出详细信息。

  • 当我们使用 push参数,那么我们需要始终传递这三个强制性参数:
  • 环境
  • 实例
  • 配置

  • 当我们使用 status参数,那么我们只需要传递这两个强制参数:
  • 环境
  • 实例

  • 如何使用 argparse 以这种方式配置这些参数在 Python 中?我正在阅读有关此内容的更多信息 here但对如何使上述事情以良好的方式工作感到困惑?此外,使用消息应该清楚地说明使用什么输入。
    这可以使用 argparse 来做吗? ?任何例子将不胜感激。通常我们会为 push 调用一个方法将使用这些参数的情况,同样适用于 status我们将调用一些其他方法来使用这些参数。

    最佳答案

    你可以使用 set_defaults 做这样的事情为每个子命令属性一个处理程序。

    import argparse

    def push(args):
    return (args.environment, args.instance, args.config)

    def status(args):
    return (args.environment, args.instance)

    parser = argparse.ArgumentParser()

    subparsers = parser.add_subparsers()

    # create the parser for the push command
    push_parser = subparsers.add_parser('push')
    push_parser.set_defaults(func=push)

    push_parser.add_argument('--environment', type=str)
    push_parser.add_argument('--instance', type=str)
    push_parser.add_argument('--config', type=str)


    # create the parser for the status command
    status_parser = subparsers.add_parser('status')
    status_parser.set_defaults(func=status)

    status_parser.add_argument('--environment', type=str)
    status_parser.add_argument('--instance', type=str)


    args = parser.parse_args(['push', '--environment=a', '--instance=b', '--config=c'])
    print(args.func(args))

    关于python - 如何使用argparse python为两个类别设置不同的强制性参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64995368/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com