【python技巧】parser传入参数

参考网址:
https://lightning.ai/docs/pytorch/LTS/api/pytorch_lightning.utilities.argparse.html#pytorch_lightning.utilities.argparse.add_argparse_args

1. 简单传入参数.

parse_known_args()方法的作用就是把不在预设属性里的参数也返回,比如下面这个例子,
执行python test.py -t, 预设中只存在-n和-y,故而被保存在unkown1中.

import argparse
# from pytorch_lightning import Trainer
## 1.设置传入参数的属性
parser = argparse.ArgumentParser()
parser.add_argument("-n","--name",type=str,const=True,nargs="?",help="postfix for logdir",)
parser.add_argument("-y","--year",type=int,const=True,default="7",nargs="?",help="postfix for logdir",)
2. 解析
opt1, unknown1 = parser.parse_known_args()
print("opt1",opt1)
print("unkonwn1",unknown1)

打印结果
在这里插入图片描述

2. parser.add_argument

add_argument 方法是 argparse 模块中的 ArgumentParser 类的一个方法,用于定义命令行接口中可以接受的参数。`

  1. name_or_flags: 这个参数是必需的,可以是字符串或字符串的列表。它定义了命令行参数的名字或者标志(flag)。例如:

    • '--verbose'-v 表示长选项或短选项。
    • 'dest' 可以指定参数的目标名称(存储到命名空间的属性名),如果不指定,默认会根据提供的名字生成。
  2. action: 定义了参数触发的动作类型。默认是 'store',意味着参数值会被存储。其他常见的动作包括:

    • 'store_const': 存储一个常数值,而不是参数值。
    • 'store_true'/'store_false': 分别用于布尔标志,没有参数值,仅表示真或假。
    • 'append': 将参数值添加到列表中,如果参数被多次提供,则会收集所有值。
    • 'count': 计数参数被提供了多少次。
  3. nargs: 定义了应该从命令行读取多少个参数值。例如:

    • '?': 可选参数,可以有零个或一个值。
    • '*': 零个或多个值。
    • '+': 一个或多个值。
    • N: 具体的数值,表示参数需要 N 个值。
  4. const: 当 actionnargs 需要一个常数值时使用,比如 'store_const''append_const'

  5. default: 如果参数没有在命令行中给出,那么将使用此默认值。

  6. type: 参数值的数据类型,例如 int, float, str 或者自定义的类型函数,如上面提到的 str2bool

  7. choices: 限制参数值的范围,只允许特定的值。

  8. required: 布尔值,指示参数是否必须出现在命令行中。

  9. help: 提供给用户的帮助信息,描述参数的作用。

  10. metavar: 在帮助信息中显示的参数值的名称,可以用来代替参数名称。

  11. dest: 指定在解析后的命名空间中存储参数值的属性名称。

3. 使用Pytroch_Lightning 来增加参数属性

Pytroch_Lightning是一个更加方便更集成的深度学习训练框架,.
Trainer.add_argparse_args(parser)会像parser.add_argument一样添加属性,打印结果可证明.

import argparse
from pytorch_lightning import Trainerparser = argparse.ArgumentParser()parser.add_argument("-y","--year",type=int,const=True,default="7",nargs="?",help="postfix for logdir",)
parser = Trainer.add_argparse_args(parser)
opt2, unknown2 = parser.parse_known_args()
print("opt2",opt2)
print("unkown2",unknown2)

打印结果
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/371145.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

算法的空间复杂度(C语言)

1.空间复杂度的定义 算法在临时占用储存空间大小的量度(就是完成这个算法所额外开辟的空间),空间复杂度也使用大O渐进表示法来表示 注: 函数在运行时所需要的栈空间(储存参数,局部变量,一些寄存器信息等)…

vue.js微商城后台管理系统

一.需要运行的效果 20240701-231456 二.代码(解析) 首先,为项目添加依赖: yarn add element-plus --save yarn add vue-router4 --save 新建一个项目包,然后命名为商品管理,在components中新建几个vue文件…

PLC电源模块

PM电源模块 为CPU信号模块及 其他的扩展设备、其他用电设备(如传感器)提供工作供电 接线和开关 状态显示 灯的闪烁示意看手册 PS电源模块 为CPU信号模块及其他的扩展设备提供工作供电。PS(System Power Supply) 外形与PM电源模块类似,状…

STM32-USART

本内容基于江协科技STM32视频学习之后整理而得。 文章目录 1. 串口通信协议1.1 通信接口1.2 串口通信1.3 硬件电路1.4 电平标准1.5 串口参数及时序1.6 串口时序 2. USART串口通信2.1 USART简介2.2 USART框图2.3 USART基本结构2.4 数据帧2.5 数据帧-配置停止位2.6 起始位侦测2.…

【flutter问题记录】 无效的源发行版:17

问题描述 在看开源项目的时候,clone下来后一直编译失败,提示:无效的源发行版:17,看描述大概是jdk的版本问题,但是在Android studio各种指定都无用,网上资料也没有flutter项目的解决方案,最后在…

【每日一练】python三目运算符的用法

""" 三目运算符与基础运算的对比 """ a 1 b 2#1.基础if运算判断写法: if a > b:print("基础判断输出:a大于b") else:print("基础判断输出: a不大于b")#2.三目运算法判断:…

转盘输入法-键盘加鼠标版本

序 转盘输入法,给你的聊天加点新意。它不用常见的九宫格或全键盘,而是把字母摆在圆盘上,一滑一滑,字就出来了,新鲜又直接。 键盘加鼠标版本GIF演示 演示软件下载 转盘输入法PC演示版本EXE下载https://download.csdn…

机械键盘有哪些分类

机械键盘是一种比传统的薄膜键盘更耐用、更快捷、更具有手感的键盘。它的键帽和按键是独立的,能够提供更好的反应速度和操作感。机械键盘在现代化生活中得到了广泛的应用。根据其特性和使用场景,机械键盘可以分为以下几类: 1.轴体分类 机械…

妈妈带女儿美在心里

在这个充满温情与惊喜的午后,阳光温柔地洒落在每一个角落,仿佛连空气弥漫着幸福的味道。就在这样一个平凡的时刻,一段关于爱与成长的温馨画面,悄然在网络上绽放,引爆了无数人的心弦——#奚梦瑶2岁女儿身高#&#xff0c…

STM32远程烧录程序

目录 简介 不同的程序下载方式 ICP:In-Circuit Programming ISP:In-System Programing IAP:In-Application Programming BootLoader Bootloader 是什么? STM32的启动方式 存储器组织 存储器映像 嵌入式SRAM 嵌入式FL…

安卓备忘录App开发

安卓备忘录APP开发,文章末尾有源码和apk安装包 目标用户: 普通安卓手机用户,需要一个简单易用的备忘录App来记录和管理日常事务。 主要功能: 用户注册: 用户可以创建一个账号,输入用户名和密码。 用户登录: 用户可以通过用户名和密码登录到应用。 用户信息存储: 用户名和…

WAWA鱼曲折的大学四年回忆录

声明:本文内容纯属个人主观臆断,如与事实不符,请参考事实 前言: 早想写一下大学四年的总结了,但总是感觉无从下手,不知道从哪里开始写,通过这篇文章主要想做一个记录,并从现在的认…

Python爬取股票信息-并进行数据可视化分析,绘股票成交量柱状图

为了使用Python爬取股票信息并进行数据可视化分析,我们可以使用几个流行的库:requests 用于网络请求,pandas 用于数据处理,以及 matplotlib 或 seaborn 用于数据可视化。 步骤 1: 安装必要的库 首先,确保安装了以下P…

Linux--V4L2摄像头驱动框架及UVC浅析

一、前言 对于一个usb摄像头,它的内核驱动源码位于/drivers/media/usb/uvc/ 核心层:V4L2_dev.c文件 硬件相关层: uvc_driver.c文件 本篇记录基于对6.8.8.8内核下vivid-core.c文件(虚拟视频驱动程序)的分析&#xff…

【Unity数据交互】如何Unity中读取Ecxel中的数据

👨‍💻个人主页:元宇宙-秩沅 👨‍💻 hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 👨‍💻 本文由 秩沅 原创 👨‍💻 专栏交流🧧&…

xxl-job集成SpringBoot

安装xxl-job客户端一般有很多方式,我这里给大家提供两种安装方式,包含里面的各项配置等等。 前期需要准备好MySQL数据库。复制SQL到数据库里面。 # # XXL-JOB v2.4.2-SNAPSHOT # Copyright (c) 2015-present, xuxueli.CREATE database if NOT EXISTS x…

自动控制:前馈控制

自动控制:前馈控制 前馈控制是一种在控制系统中通过预先计算和调整输入来应对已知扰动或变化的方法。相比于反馈控制,前馈控制能够更快速地响应系统的变化,因为它不依赖于系统输出的反馈信号。前馈控制的应用在工业过程中尤为广泛&#xff0…

计算机网络--网络层

一、网络层的服务和功能 网络层主要为应用层提供端对端的数据传输服务 网络层接受运输层的报文段,添加自己的首部,形成网络层分组。分组是网络层的传输单元。网络层分组在各个站点的网络层之间传输,最终到达接收方的网络层。接收方网络层将运…

docker 安装 禅道

docker pull hub.zentao.net/app/zentao:20.1.1 sudo docker network create --subnet172.172.172.0/24 zentaonet 使用 8087端口号访问 使用禅道mysql 映射到3307 sudo docker run \ --name zentao2 \ -p 8087:80 \ -p 3307:3306 \ --networkzentaonet \ --ip 172.172.172.…

Es结合springboot(笔记回忆)

导包 <!--导入es--> <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-elasticsearch</artifactId> </dependency> <dependency><groupId>org.springframework.boot<…