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

argparser使用教程

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

python 复制代码
# 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)终端查看使用

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

(3)终端运行时修改默认参数

bash 复制代码
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
bash 复制代码
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 指定参数的帮助信息
python 复制代码
"""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使用

相关推荐
卫生纸不够用24 分钟前
远程链接mysql步骤
数据库·mysql
未知陨落39 分钟前
数据结构——二叉搜索树
开发语言·数据结构·c++·二叉搜索树
大波V539 分钟前
设计模式-参考的雷丰阳老师直播课
java·开发语言·设计模式
无敌最俊朗@1 小时前
unity3d————接口基础知识点
开发语言·c#
winfredzhang1 小时前
如何使用 python 中的 Pillow 创建可自定义的图标生成器
python·pillow·图标·png
夏小花花1 小时前
postgresql 创建序列
数据库·postgresql
Allen Bright1 小时前
Redis介绍
数据库·redis·缓存
engchina1 小时前
Oracle ADB 导入 BANK_GRAPH 的学习数据
数据库·学习·oracle·graph
不爱学习的YY酱1 小时前
【计网不挂科】计算机网络第二章< 物理层 >习题库(含答案)
java·数据库·计算机网络
CCSBRIDGE1 小时前
sql文件
数据库·oracle