当前位置: 首页> 房产> 建筑 > 智赢erp系统_网站建设的公司业务_口碑营销案例2022_如何去除痘痘有效果

智赢erp系统_网站建设的公司业务_口碑营销案例2022_如何去除痘痘有效果

时间:2025/7/14 21:56:03来源:https://blog.csdn.net/qq_43563512/article/details/147289612 浏览次数:0次
智赢erp系统_网站建设的公司业务_口碑营销案例2022_如何去除痘痘有效果

argparse.add_argument 完全指南

🧱 基础篇:命令行参数解析入门

1. 模块初始化

import argparse# 创建参数解析器(所有操作的基础容器)
parser = argparse.ArgumentParser(
prog='MyApp', # 程序名称(默认从sys.argv[0]获取)
description='数据处理器',
epilog='示例: python app.py input.txt --mode fast'
)

2. 参数类型解析

位置参数(Positional Arguments)
# 必须按顺序提供的参数(无前缀)
parser.add_argument(
'input_file', # 参数名称
type=str, # 自动类型转换
help='输入文件路径'
)

▶ 调用方式:

python app.py data.csv # data.csv 赋值给 args.input_file
可选参数(Optional Arguments)

# 通过 - 或 -- 标识的参数(顺序无关)
parser.add_argument(
'-m', '--mode', # 短参数 + 长参数
choices=['fast', 'slow'],
default='fast',
help='运行模式(默认: fast)'
)

▶ 调用方式:

python app.py data.csv --mode slow

🔧 核心参数详解

参数作用描述高级特性说明
dest结果字典中的属性名默认自动生成(如 --mode → mode)
type类型强制转换支持自定义函数(见进阶篇)
nargs参数值的数量规则?*+数字
const与action配合使用的常量值常用于标志型参数
metavar帮助文档中显示的参数值占位符默认用大写参数名(如 MODE)

代码示例:复杂参数定义

parser.add_argument(
'--range',
type=float,
nargs=2, # 必须提供两个值
metavar=('MIN', 'MAX'),
help='取值范围(示例: --range 0.5 2.0)'
)

▶ 调用结果:

args.range[0.5, 2.0]

🚀 进阶篇:高级应用场景

场景1:动态参数处理

自定义类型验证
def valid_percentage(value):v = float(value)if not (0 <= v <= 1):raise argparse.ArgumentTypeError('必须在0-1之间')return vparser.add_argument(
'--threshold',
type=valid_percentage, # 使用自定义验证函数
default=0.5
)
自定义 Action 类
class UpperCaseAction(argparse.Action):def call(self, parser, namespace, values, option_string=None):setattr(namespace, self.dest, values.upper())parser.add_argument(
'--text',
action=UpperCaseAction, # 自动转为大写
type=str
)

场景2:复合参数结构

子命令系统(类似git)
subparsers = parser.add_subparsers(title='commands', dest='command')# 创建子解析器
parser_train = subparsers.add_parser('train', help='训练模式')
parser_train.add_argument('--epochs', type=int)parser_test = subparsers.add_parser('test', help='测试模式')
parser_test.add_argument('--batch-size')

▶ 调用方式:

python app.py train --epochs 50
python app.py test --batch-size 32

场景3: 处理路径参数

# 使用Path对象(Python 3.6+)
from pathlib import Path
parser.add_argument('--dir', type=Path)

⚠️ 避坑指南

# 错误:短参数重复定义
parser.add_argument('-v', ...)
parser.add_argument('-v', ...)  # 触发ArgumentError  
# 布尔参数的正确姿势
parser.add_argument("--verbose", action="store_true", help="显示详细信息")
# 推荐写法(互斥组)
group = parser.add_mutually_exclusive_group()
group.add_argument('--enable', action='store_true')
group.add_argument('--disable', action='store_false', dest='enable')

转义字符:

  • 若参数值包含 *、# 等符号,需在代码中用 \ 转义。
  • 示例:parser.add_argument(“–filter”, help=“过滤模式(如 *.txt)”)。

参数顺序:

  • 使用 nargs=argparse.REMAINDER 时,必须将其作为最后一个参数定义,否则后续参数无法解析。

💡 最佳实践:使用 argparse.ArgumentParser(formatter_class=argparse.ArgumentDefaultsHelpFormatter) 可在帮助信息中显示默认值

关键字:智赢erp系统_网站建设的公司业务_口碑营销案例2022_如何去除痘痘有效果

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: