python命令行解析
创始人
2024-11-14 22:34:05
0
  • 导入库
import argparse
  • 创建参数解析器对象,可以接收多个选项来定制帮助文本和解析行为
parser = argparse.ArgumentParser()
  • 添加参数
  1. 位置参数:必须提供的参数,并且不需要选项前缀(如 - 或 --
  2. 可选参数:使用选项前缀(如 - 或 --),并且在命令行中是可选的
parser.add_argument()

下面具体看一下例子:

parser.add_argument(         "--prompt",         type=str,         nargs="?",         default="a painting of a virus monster playing guitar",         help="the prompt to render"     )

nargs 参数用于指定一个命令行参数可以接受的值的数量。nargs 可以接受以下几种值:

  • 整数: 接受指定数量的值(如 nargs=2 表示该参数接受两个值)
  • '?': 表示该参数是可选的,可以接受零个或一个值
  • '*': 接受零个或多个值
  • '+': 接受一个或多个值

下面重点看 nargs='?'的情况:

当 nargs="?" 时,参数可以接受零个或一个值。如果没有提供值,则使用默认值(如果指定了 default 参数)。如果没有提供值且没有指定默认值,则该参数的值为 None

  • 位置参数:在命令行中不需要/不能带参数名,直接带值即可。在 nargs='?'时,由于位置参数不带参数名,nargs 可以接受零个或一个值,因此位置参数是不带 const 参数的,只有 default 参数
parser.add_argument(     'bar',     nargs='?',     default='default_bar',     help='位置参数,可以接受零个或一个值' )  args = parser.parse_args() print(f"bar: {args.bar}")

1. 没有提供 bar 参数:

python script.py

    输出: bar: default_bar

2. 提供 bar 参数和一个值:

python script.py some_value

    输出: bar: some_value

  • 可选参数:此时就得带参数名,而且根据不同情况可能用到 const 和 default 参数
parser.add_argument(     '--foo',     nargs='?',     const='default_const',  # 当没有提供值时使用的常量值     default='default_value',  # 完全没有提供参数时使用的默认值     help='可选参数,可以接受零个或一个值' )  args = parser.parse_args() print(f"foo: {args.foo}")

1. 没有提供 --foo 参数:

python script.py

    输出: foo: default_value

2. 提供 --foo 参数但没有值:

python script.py --foo

    输出: foo: default_const

3. 提供 --foo 参数和一个值:

python script.py --foo some_value

    输出: foo: some_value

const 和 default 的区别

  • const: 当参数存在但没有提供值时使用的常量值。只有在置 nargs='?' 或 nargs='*' 时才有意义
  • default: 当参数完全没有出现在命令行中时使用的默认值

相关内容

热门资讯

微信上链接拼三张房卡/新蜜瓜大... 拼三张是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:8488009许多玩家在游戏中会购买房卡来享受...
微信炸金花房卡找谁购买/微信斗... 炸金花是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:33903369许多玩家在游戏中会购买房卡来享...
微信群打炸金花房卡怎么搞/斗牛... 炸金花是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:55051770许多玩家在游戏中会购买房卡来享...
微信斗牛怎么买房卡/招财猫大厅... 斗牛是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:8488009许多玩家在游戏中会购买房卡来享受更...
微信群炸金花房间买房卡/新海狮... 炸金花是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:33903369许多玩家在游戏中会购买房卡来享...
微信炸金花房卡怎么开房间/微信... 炸金花是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:55051770许多玩家在游戏中会购买房卡来享...
微信群链接炸金花房卡怎样买/斗... 炸金花是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:8488009许多玩家在游戏中会购买房卡来享受...
炸金花链接房卡去哪里买/怎么创... 炸金花是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:33903369许多玩家在游戏中会购买房卡来享...
炸金花链接房卡去哪里买/微信牛... 炸金花是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:55051770许多玩家在游戏中会购买房卡来享...
微信里炸金花房卡卖家联系方式/... 炸金花是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:8488009许多玩家在游戏中会购买房卡来享受...
微信牛牛房卡如何购买/新世界大... 斗牛是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:33903369许多玩家在游戏中会购买房卡来享受...
微信炸金花房卡哪里有卖/新鸿狐... 炸金花是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:55051770许多玩家在游戏中会购买房卡来享...
炸金花房卡链接如何购买/斗牛房... 炸金花是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:8488009许多玩家在游戏中会购买房卡来享受...
炸金花好友房卡在哪里吗买/牛牛... 炸金花是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:33903369许多玩家在游戏中会购买房卡来享...
微信牛牛房卡链接在哪买的/九尾... 斗牛是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:55051770许多玩家在游戏中会购买房卡来享受...
创建炸金花微信链接房卡/微信牛... 炸金花是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:8488009许多玩家在游戏中会购买房卡来享受...
炸金花微信链接房卡/新猴王大厅... 炸金花是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:33903369许多玩家在游戏中会购买房卡来享...
炸金花房卡链接怎么买/微信牛牛... 炸金花是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:55051770许多玩家在游戏中会购买房卡来享...
微信炸金花怎么买房卡/战神大厅... 炸金花是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:8488009许多玩家在游戏中会购买房卡来享受...
微信群上炸金花房间链接怎么开/... 炸金花是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:33903369许多玩家在游戏中会购买房卡来享...