当前位置: 首页 > wzjs >正文

网站开发单子seo网站优化收藏

网站开发单子,seo网站优化收藏,成都网站seo分析,香港疫情argparse.add_argument 完全指南 🧱 基础篇:命令行参数解析入门 1. 模块初始化 import argparse# 创建参数解析器(所有操作的基础容器) parser argparse.ArgumentParser( progMyApp, # 程序名称(默认从sys.argv[0]…

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) 可在帮助信息中显示默认值

http://www.dtcms.com/wzjs/242609.html

相关文章:

  • 网站制作熊猫建站优化官网咨询
  • 上海网站建设-目前企业网站所面临的困惑房地产最新消息
  • 为什么只有中国做网站需要备案seo线上培训机构
  • 服务型政府门户网站建设seo搜索引擎优化薪资水平
  • 为什么网站建设价格不一新东方雅思培训机构官网
  • 企业网站开发外包公司网站外链查询
  • 高校网站建设的时效性精准拓客软件哪个好
  • 网站备案撤销原因百度人工服务电话
  • 重庆网站建设公司联系方式外贸营销网站制作公司
  • 给一个企业做网站营销策略手段有哪些
  • 做个自己的影院网站怎么做微指数查询入口
  • 广州微网站建设dmz100网络营销策略内容
  • wordpress常用函数大全提升seo排名
  • 淘宝联盟推广做网站违法2021小说排行榜百度风云榜
  • 从事网站开发办理什么个体百度网页版网址
  • 宁波城乡建设局网站搜狗收录入口
  • b2b有哪些电商平台网址重庆高端网站seo
  • 中国第五冶金建设公司医院网站永久免费wap自助建站
  • 如何做网站的外链手机怎么在百度上发布信息
  • 三大门户网站企业网站seo案例
  • 公司可以做网站吗培训心得体会感悟
  • wordpress手机端兼容长沙网站seo优化排名
  • 四川网站建设那家好优化网站排名如何
  • 做网站客户给不了素材比较火的推广软件
  • 专业做电脑系统下载网站seo前线
  • 什么是手机网站建设seo关键词排名报价
  • 网站建设特效代码北京网站seo优化推广
  • 广东峰凌建设有限公司网站新手seo入门教程
  • 新宫网站建设公司浏览器搜索引擎大全
  • 建设银行网站收款怎么打明细做一个简单网页