【Python实用标准库】argparser使用教程

news2024/10/10 8:24:21

argparser使用教程

  • 1.介绍
  • 2.基本使用
  • 3.add_argument() 参数设置
  • 4.参考

1.介绍

(一)argparse 模块是 Python 内置的用于命令项选项参数解析的模块,其用主要在两个方面:

  1. 一方面在python文件中可以将算法参数集中放到一起,对参数进行调整时能够找到文件中参数集中的位置,(主要是调整默认参数);
  2. 另一方面在利用python终端进行调用时,不想进入python文件内部对默认参数调整,可以先查看文件参数的使用,然后在终端进行指定修改,然后传递参数进入python文件内部,对其对应参数进行设置;

(二)与argparse在终端设置参数然后传递进入python文件内部相同功能的还有Python内置:sys.argv,但是与argparse传递参数时需要指定参数名,而sys.argv则按照终端参数的顺序传入到sys.argv列表,在python内部则根据列表顺序进行调用。

2.基本使用

argparse定义四个步骤

  1. 导入argparse包 ——import argparse
  2. 创建一个命令行解析器对象 ——创建 ArgumentParser() 对象
  3. 给解析器添加命令行参数 ——调用add_argument() 方法添加参数
  4. 解析命令行的参数 ——使用 parse_args() 解析添加的参数

(1)代码示例如下python文件:argparser.py

# 1.导入argparse库
import argparse
 
# 2. 定义命令行解析器对象
parser = argparse.ArgumentParser(description='Use of argparse')
 
# 3. 添加命令行参数
parser.add_argument('--model',type=str,default='model name',help='input model')
parser.add_argument('--lr',type=float,default=0.01,help='learning rate')
 
# 4. 从命令行中结构化解析参数
args = parser.parse_args()

# 5.输出或调用解析参数
print(args)# 打印全部参数信息
print('show {}  {}'.format(args.model, args.lr))

(2)终端查看使用

python argparser.py -h  #可以查看设置的参数使用说明

在这里插入图片描述
(3)终端运行时修改默认参数

python argparser.py --model resnet50

(4) sys.argv的命令行参数
sys.argv的使用

  1. 当Python脚本被执行时,命令行参数被传递给脚本,并以列表形式存储在 sys.argv 列表中,通俗将就是:将命令终端python文件名+终端调用参数名加入到sys.argv之中,这样可以将终端输入的参数传递到python文件内部中
  2. 在argparser.py文件内部可以设置parm1=sys.argv[0],即设置的param1的变量值为终端传递的argparser.py的路径名
  3. sys.argv在少量参数时使用,在文件含有大量参数时推荐使用argparse
python python argparser.py --model resnet50 #就会把argparser.py --model resnet50传递进入sys.argv,形成如下列表

在这里插入图片描述

sys.argv是一个列表,在python内部,sys.argv[0]表示python文件名,sys.argv[1]=‘–model’,sys.argv[2]=‘resnet50’

3.add_argument() 参数设置

名称说明备注
name命令行参数的名字默认是选项字符串去掉前缀后的结果
action参数在命令行中出现时应该采取的动作默认store_true/store_false
default指定参数的默认值
type指定命令行参数应该被转换成的类型
choices指定参数可接受的值的一个容器只能从可接受值里取值
required指定参数是否必须提供
help指定参数的帮助信息
"""1.基本用法:参数名称model,参数输入值被转化为字符串,required表示参数为必须值(不为可选),
default表示默认为resnet,help为该参数的帮助信息"""
parser.add_argument(name='--model',type=str,required=True,default='resnet',help='input model name')

"""2.action的用法"""
parser.add_argument('--verbose', action='store_true', help='increase output verbosity')
"""运行程序并加上--verbose选项(例如python script.py --verbose),args.verbose的值将会是True"""

"""3.choices"""
parser.add_argument('--food', choices=['apple', 'banana', 'cherry'], help='choose a fruit')
"""--food选项指定一个不是'apple'、'banana'或'cherry'的值(例如python script.py --food orange),argparse将会显示一个错误消息,说明提供的值不是有效的选择。"""

4.参考

(1)参考教程:argparse使用

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

CavalierContours 二维线操作

CavalierContours 二维线操作 2D polyline library for offsetting, combining, etc. 用于偏移、交并补等组合等操作的 2D 多折段线库。 Polyline Structure 多段线结构 Polylines are defined by a sequence of vertexes and a bool indicating whether the polyline is cl…

关系型数据库mysql(7)sql高级语句①

目录 一.MySQL常用查询 1.按关键字(字段)进行升降排序 按分数排序 (默认为升序) 按分数升序显示 按分数降序显示 根据条件进行排序(加上where) 根据多个字段进行排序 ​编辑 2.用或(or&…

【C语言】内存函数(memmove)的使用和模拟实现

目录 前言memmove定义1.在cplusplus中的定义 memmove的模拟实现1、思路2、难点3、解决方法 模拟实现代码 前言 这篇文章讲述了memcpy的使用、模拟实现和一个未解决的问题内存函数(memcpy)的使用和模拟实现 当我们使用我们模拟的my_memcpy拷贝,当源拷贝地址与目标拷…

C语言编译与链接

前言 我们想一个问题,我们写的C语言代码都是文本信息,电脑能直接执行c语言代码吗?肯定不能啊,计算机能执行的是二进制指令,所以将C语言转化为二进制指令需要一段过程,这篇博客讲一下编译与链接,…

ISAC代码仿真学习笔记

文章目录 A. MIMO Communication ModelB. MIMO Radar Model III. Joint Waveform and Phase Shift Matrix Design for Given Radar BeampatternA. Problem FormulationB. Proposed Algorithm IV. JOINT DESIGN WITH TRADE-OFF BETWEEN RADAR AND COMMUNICATION PERFORMANCEA. P…

boost::asio::ip::tcp/udp::socket::release 函数为什么限制 Windows 8.1 才可以调用?

如本文题目所示,这是因为只有在 Windows 8.1(Windows Server 2012 RC)及以上 Windows 操作版本才提供了运行时,修改/删除完成端口关联的ABI接口。 boost::asio 在 release 函数底层实现之中是调用了 FileReplaceCompletionInform…

Ubuntu20安装python3.10

1、添加 deadsnakes PPA 到源列表 add-apt-repository ppa:deadsnakes/ppa apt update 2、安装 apt install python3.10 3设置默认版本为 Python3.10 查看所有python版本 ls -l /usr/bin/python* update-alternatives --install /usr/bin/python3 python3 /usr/bin/pytho…

java-pytorch 使用手动下载FashionMNIST数据集进行测试

java-pytorch 使用手动下载FashionMNIST数据集进行测试 先定义训练数据和测试数据的位置查看一下读取到的标签数据格式使用loc和iloc访问下数据,便于下面操作使用read_image函数查看下图片的数据大小开始写数据集使用DataLoader去加载我们自己的数据看下加载后的dat…

亚马逊跨境电商迎来崭新时代,武汉星起航携手卖家共赴新征程

随着全球经济一体化的深入发展,跨境电商已成为推动国际贸易的重要力量。据最新数据显示,2023年中国跨境电商出口规模达到1.83万亿元,同比增长19.6%,增速远超电商行业整体水平。在这一背景下,2024年有望成为中国跨境电商…

ForkJoinPool、CAS原子操作

ForkJoinPool ForkJoinPool是由JDK1.7后提供多线程并行执行任务的框架。可以理解为一种特殊的线程池。 1.任务分割:Fork(分岔),先把大的任务分割成足够小的子任务,如果子任务比较大的话还要对子任务进行继续分割。 …

构造器练习

练习一 题目 案例: (1)定义Student类,有4个属性:String name;int age;String school;String major;(2)定义Student类的3个构造器:- 第一个构造器Student(String n, int a)设置类的name和age属性; - 第二个构造器Student(String n, int a, St…

大话设计模式之策略模式

策略模式是一种行为设计模式,它允许在运行时选择算法的行为。这种模式定义了一族算法,将每个算法都封装起来,并且使它们之间可以互相替换。 在策略模式中,一个类的行为或其算法可以在运行时改变。这种模式包含以下角色&#xff1…

2024/3/29 IOday2

所有人&#xff0c;今日作业&#xff1a;用fwrite 和 fseek功能&#xff0c;将一张bmp格式的图片更改成 德国国旗 #include <stdio.h> #include <string.h> #include <stdlib.h> int main(int argc, const char *argv[]) {FILE* fpfopen("./rising_free…

android 集合总结

1 集合分类&#xff0c; collection和map两大类,Iterator接口是提供遍历任何Collection的接口&#xff0c;不是map 2 集合类的底层实现 hashset基于hashmap实现&#xff08;只不过HashSet里面的HashMap所有的value都是同一个Object而已&#xff09; treeset由红黑树实现 …

基于STC12C5A60S2系列1T 8051单片机通过单个按键单击次数实现开关机应用

基于STC12C5A60S2系列1T 8051单片机通过单个按键单击次数实现开关机应用 STC12C5A60S2系列1T 8051单片机管脚图STC12C5A60S2系列1T 8051单片机I/O口各种不同工作模式及配置STC12C5A60S2系列1T 8051单片机I/O口各种不同工作模式介绍基于STC12C5A60S2系列1T 8051单片机通过单个按…

代码随想录刷题day38|斐波那契数爬楼梯最小花费爬楼梯

文章目录 day38学习内容一、动态规划理论基础1.1、动态规划理论基础的几个关键概念&#xff1a;1.2、动态规划五部曲 二、斐波那契数2.1、动态规划五部曲2.1.1、 确定dp数组&#xff08;dp table&#xff09;以及下标的含义2.1.2、确定递推公式2.1.3、 dp数组如何初始化2.1.4、…

带你了解万向锁与欧拉角

万向锁与欧拉角 附赠自动驾驶学习资料和量产经验&#xff1a;链接 前言 上一篇中我们讲了欧拉角与旋转变化&#xff0c;最后留了一个悬念&#xff0c;就是欧拉角在俯仰角为90时会出现万向锁现象&#xff0c;这是欧拉角表征飞行器姿态的一个局限性&#xff0c;今天我们就来谈谈…

Spring-01

Spring 1.Spring是什么? spring是一个开源的Java应用框架&#xff0c;它提供了一套全面的基础设施支持 2.Spring框架的主要特点 1&#xff09;依赖注入&#xff08;Dependency Injection&#xff0c;DI&#xff09; 2&#xff09;面向切面编程&#xff08;AOP&#xff09…

智慧旅游中数据可视化的革新作用

在数字化浪潮席卷全球的今天&#xff0c;数据可视化技术已成为链接信息与用户的重要桥梁&#xff0c;尤其在智慧旅游领域&#xff0c;它的作用更是日益凸显。随着智慧旅游的概念越来越被重视&#xff0c;数据可视化成为其提供高效、直观服务的关键手段之一。本文将探讨数据可视…

K8S安装和部署(kubeadmin安装1主2从)

这里用kubeadmin方式进行安装部署 1. 准备三台服务器 服务器地址 节点名称 192.168.190.200 master 主 192.168.190.201 node1 从 192.168.190.202 node2 从 2. 主机初始化&#xff08;所有主机&#xff09; 2.1根据规划设置主机名 #切换到192.168.190.200 hostnamectl…