python argparse 参数使用详解记录

1.argparse是什么,有什么用?

  argparse 是 Python 标准库中用于解析命令行参数和选项的模块,可以轻松地编写用户友好的命令行,进行参数解析。我理解经常作为程序sh脚本,或者接口参数缓存的入口。

 2.基本步骤

  • 创建解析器 argparse.ArgumentParser() 创建一个解析器对象

         定义程序可以接受的命令行参数,并设置参数的名称、类型、默认值和帮助信息

  • 添加参数: add_argument() 向解析器中添加参数

        如参数名称、缩写、类型、默认值、帮助信息

  • 解析参数: parse_args() 解析命令行参数,包含了解析后的参数及其对应的值

ArgumentParser ()函数参数说明:

-------------------------------------------------------------------------------------------------------------------
# 函数功能:创建一个命令行参数解析器对象。
argparse.ArgumentParser([

        prog=None, usage=None, description=None, epilog=None,

formatter_class=argparse.HelpFormatter,  prefix_chars='-',  fromfile_prefix_chars=None, argument_default=None,  conflict_handler='error',  add_help=True,  allow_abbrev=True

])


# 参数说明: 

- prog:                            程序的名称

- usage:                         用法说明
- description:                  描述参数作用的文字
- epilog:                          描述参数作用的结尾文字

- formatter_class:           自定义帮助信息输出格式
- prefix_chars:                用于标识可选参数的前缀字符
- fromfile_prefix_chars:  用于从文件中读取参数的前缀字符
- argument_default:        参数的默认值
- conflict_handler:          解决参数冲突的方式
- add_help:                    是否自动添加'-h'和'--help'选项来显示帮助信息
 - allow_abbrev:             是否允许参数缩写

import argparse

# 创建一个解析器对象,description 参数用于提供程序的简要描述
parser = argparse.ArgumentParser(description='这是一个argparse 示例,我是描述信息')

# 添加参数,位置参数 name 和 age,help 参数用于提供参数的帮助信息,type 参数指定了参数的类型
parser.add_argument('name', help='你的姓名')
parser.add_argument('age', type=int, help='你的年龄')

# 解析命令行参数,将结果存储在 args 对象中
args = parser.parse_args()

# 打印参数
print(f"你好,{args.name},你今年 {args.age} 岁了。")

3.可选参数:

add_argument() 函数参数说明

----------------------------------------------------------------------------------------------------------------------

函数功能:向命令行参数解析器中添加命令行参数。
parser.add_argument(name or flags...[, action][, nargs][, const][, default][, type][, choices][, required][, help][, metavar][, dest])


# 参数说明:
 - name or flags:    命令行参数的名称或标志,可以是一个字符串或一个包含多个字符串的列表。例如 foo 或 -f, --foo。
                (1)位置参数: 直接输入一个字符串,代表位置参数,是必传值。
                (2)命令标志: 在字符串前加一个短横线(-),在命令中表示该参数。
                (3)可选参数: 在字符串前加两个短横线(--),在命令行中代表可选参数,可输入也可不输入。

- action:     指定命令行参数的动作,默认为'store'。将命令行参数值存储到相应的参数名中。
                (1)'store':存储参数值。
                (2)'store_const':存储常量值。
                (3)'store_true':存储True值。
                (4)'store_false':存储False值。
                (5)'append':将参数值添加到列表中。
                (6)'append_const':将常量值添加到列表中。
                (7)'count':计算参数出现的次数,存储到参数名中。
                (8)'help':显示帮助信息并退出。

  - nargs:            命令行参数的数量,默认为None。
  - const:            常量值,用于一些特殊的动作,默认为None。
   - default:          命令行参数的默认值,默认为None。
   - type:             命令行参数的数据类型,默认为None。
              (1)int:整数。
              (2)float:浮点数。
              (3)str:字符串。
              (4)bool:布尔值。
   - choices:          命令行参数允许的值的列表,默认为None。
   - required:         命令行参数是否为必选,默认为False。
   - help:             命令行参数的帮助文本,默认为None。
   - metavar:          命令行参数在帮助文本中的名称,默认为None。
   - dest:             命令行参数存储在解析结果中的属性名称,默认为None。
                (1)默认情况下,参数名称与属性名称相同。
                (2)若指定dest,则使用dest指定的参数名称作为属性名称。

--verbose 和 -v 是可选参数,action='store_true' 表示如果该参数在命令行中出现,则将其对应的属性设置为 True,否则为 False

import argparse

# 创建一个解析器对象,description 参数用于提供程序的简要描述
parser = argparse.ArgumentParser(description='这是一个argparse 示例,我是描述信息')

# 添加可选参数
parser.add_argument('--verbose', '-v', action='store_true', help='启用详细输出')

# 解析命令行参数,将结果存储在 args 对象中
args = parser.parse_args()

# 使用参数
if args.verbose:
    print("详细输出已启用。")
else:
    print("详细输出未启用。")

4.默认值和选择

choices 参数指定了参数的可选值,default 参数指定了参数的默认值

import argparse

# 创建解析器
parser = argparse.ArgumentParser(description='这是一个包含默认值和选择的示例')

# 添加参数,设置默认值和选择
parser.add_argument('--color', choices=['red', 'green', 'blue'], default='red', help='选择颜色')

# 解析参数
args = parser.parse_args()

# 使用参数
print(f"你选择的颜色是 {args.color}。")

5运行py命令:

python3 test_parase.py --name "丽丽" --age 18

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值