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

argparse.ArgumentParser




Python参数解析工具argparse.ArgumentParser()和实例详解

创建解析器 parser=argparse.ArgumentParser()
添加参数 parser.add_argument(name or flags…[, action][, nargs][, const][, default][, type][, choices][, required][, help][, metavar][, dest])
每个参数解释:

name or flags:字符串的名字或者列表。
action:当参数在命令行中出现时使用的动作。
nargs:应该读取的命令行参数个数
const:不指定参数时的默认值
type:命令行参数应该被转换成的类型
choices:参数可允许的值的另一个容器
required:可选参数是否可省略
help:参数的帮助信息
metavar - 在 usage 说明中的参数名称,对于必选参数默认就是参数名称,对于可选参数默认是全大写的参数名称.
dest - 解析后的参数名称,默认情况下,对于可选参数选取最长的名称,中划线转换为下划线

解析参数 parser.parse_args()
调用参数 exp_path = paras.exppath

import argparsedef parse_args_and_config():parser = argparse.ArgumentParser(description=globals()["__doc__"])parser.add_argument("--config", type=str, required=True, help="Path to the config file", default="/home")#  -V=XXX 或 --verson=parser.add_argument("-V", "--verson",type=int,default=3.7)# 出现 -t 或 --T 为true, 否则为false  (-t=true这样写是错误的)parser.add_argument("-t", "--T", action="store_true")args = parser.parse_args()# arg.长  args.verson 不能args.Vprint(args.config, args.verson, args.T)parse_args_and_config()
# 调用方式 python myargparse.py --config=hhh

argparse.Namespace()

加载配置文件,将配置文件中的信息保存到argparse中
配置文件格式是cifar10.yml 即yml格式,内部内容以字典形式保存

data:dataset: "CIFAR10"image_size: 32num_workers: 4model:type: "simple"in_channels: 3ema: Trueresamp_with_conv: True
XXXX:dd:"ss"

加载配置文件

with open("D:\\BaiduSyncdisk\\code\\deeplearn\\paper_exerpriment\\001diffusion_model\\002_DDIM\\ddim-main\\configs\\cifar10.yml") as f:config = yaml.safe_load(f)print(type(config)) # <class 'dict'>
new_config = dict2namespace(config)
print(new_config)

在将字典存储到 argparse.

def dict2namespace(config):print(11)namespace = argparse.Namespace()for key, value in config.items():# print(key, value)if isinstance(value, dict):new_value = dict2namespace(value)else:new_value = valuesetattr(namespace, key, new_value)return namespace```
http://www.lryc.cn/news/63533.html

相关文章:

  • 大数据Doris(五):FE 扩缩容
  • react相关概念
  • 计算机的硬件系统的组成
  • Python基础-列表元组
  • 【校招VIP】拿到offer就躺平?转正前需要知道的这些事儿...
  • 考研拓展:汇编基础
  • 10 【Sass语法介绍-继承】
  • 魔兽worldserver.conf 服务端配置文件说明
  • 关于电信设备进网许可制度若干改革举措的通告
  • TuGraph 开源数据库体验
  • 【C++】18.哈希
  • C# 利用TabControl控件制作多窗口切换
  • 论文阅读《PIDNet: A Real-time Semantic Segmentation Network Inspired by PID》
  • SOA与中间件、基础件的发展
  • 渗透测试 | 目录扫描
  • 基于Springboot的班级综合测评管理系统的设计与实现
  • 比较全的颜色RGB值对应表 8位 16位
  • freertos使用基础
  • Spring Boot引用外部JAR包和将自己的JAR包发布到本地Maven库
  • 微信小程序原生开发功能合集十二:编辑界面的实现
  • 基于3D渲染和基于虚拟/增强现实的IIoT原理的数字孪生平台的方案论文阅读笔记
  • 腾讯云镜YunJing——Agent定时任务脚本分析
  • 如何使用java编写差分进化算法
  • Enterprise:如何在 Elastic 企业搜索引擎中添加对更多语言的支持
  • SqlServer数据库中文乱码问题解决方法
  • 跨域的五种最常见解决方案
  • 作为一个C++新手,我感兴趣的C++开源项目
  • 杭州云降价只是敲锣
  • RabbitMQ笔记
  • 【Latex】如何在表格中使用footnote