IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> Python argparse使用方法介绍 -> 正文阅读

[Python知识库]Python argparse使用方法介绍

官方文档地址

Python argparse使用方法介绍

1. argparse使用流程

# 1. 导入包
import argparse
# 2. 实例化对象
parser = argparse.ArgumentParser(description='Test.')
# 3. 添加参数
"""
参数分必选参数和可选参数
参数名前面没有'-'则代表是必选参数,传参时无需指定参数名,直接指定参数值即可(多个必选参数,按参数顺序解析)
参数名前面带有'-'或'--'表示是可选参数,解析成对象属性时,属性名会自动忽视左侧的'-',如-a,获取值时使用的是xxx.a
参数名除了开头有'-',其它位置也有'-'时,在解析成对象属性时,其它位置的'-'会转换为'_',如--a-b,获取值时使用的是xxx.a_b
"""
parser.add_argument('integer')  # 添加必选参数integers
parser.add_argument('-a')  # 添加可选参数a
parser.add_argument('--b-c')  # 添加可选参数b_c
# 4. 解析参数
args = parser.parse_args()  # 通过控制台传参
# args = parser.parse_args(['1', '-a', 'value of a', '--b-c', 'value of b_c'])  # 通过代码传入参数
print(args.integer)
print(args.a)   # 属性名不需要带左侧的'-'
print(args.b_c)  # 解析时,参数名后面的'-'在属性名中被转为'_'

2. argparse.add_argument参数说明

  • name, 指定参数名称
    - 必选参数是没有以’-’开头的参数
    - 可选参数是以’-‘或’–'开头的参数
  • action, 当参数在命令行中出现时使用的动作基本类型
    - 常用的值为:‘store’(默认),‘store_true’, ‘store_false’, ‘store_const’, ‘count’, ‘append’, ‘extend’
    - ‘store’:即获取通过命令行传入的值
    - ‘store_false’:命令行有指定该参数,则参数值为false,否则为true。传参时不需要再指定参数值
    - ‘store_true’:与’store_false’相反
    - ‘store_const’:命令行有指定该参数,则该参数的值为参数’const’定义的值
    - ‘count’:命令中该参数出现的次数作为该参数的值
    - ’append’:该参数如果指定多次,则将其值合并在一个list中
    - ‘extend’:该参数如果指定多次,则将其值合并在一个list中。与append的区别在于一个是用list的append方式追加,一个是用list的extend方式追加
  • nargs, 该参数的值的个数,用于同一个参数传入多个值
  • const, 被一些 action 和 nargs 选择所需求的常数
  • default, 用户未指定该参数时的默认值
  • type, 指定参数的数据类型
    - 如果是bool类型,只是将空字符串转为 False 而将非空字符串转为 True
  • choices, 给定一组值,参数值只能在这组值中选
  • required, 该可选参数是否时必填的
  • help, 对该参数的功能进行介绍,在调用help时呈现
  • metavar, 介绍参数值示例,在调用help时呈现,对代码本身无作用,只是对人起到提示的作用
  • dest, 指定参数在引用时所对应的属性名称
# 必选参数,使用时无需指定参数名
# parser.parse_args(['/home/data_dir']) 是对的
# parser.parse_args(['data_dir', '/home/data_dir']) 是错的
# 取值时使用parser.data_dir
args = parser.add_argument('data_dir', metavar='DIR',
                    help='path to dataset')

# 定义可选参数dataset,默认值为'',使用时可用如下两种方式
# parser.parse_args(['--dataset', '/home/data_dir'])
# parser.parse_args(['-d', '/home/data_dir'])
# 取值时忽视左侧的所有'-',使用parser.dataset(如果同时指定'--'和'-'两种传参方式,则取值时以'--'定义的名称
args = parser.add_argument('--dataset', '-d', metavar='NAME', default='',
                    help='dataset type (default: ImageFolder/ImageTar if empty)')

# 定义可选参数pretrained,如果命令行指定该参数,则其值为true,否则为false
args = parser.add_argument('--pretrained', action='store_true', default=False,
                    help='Start with pretrained version of specified network (if avail)')
# 只需要指定参数名,不需要指定参数值 parser.parse_args(['--pretrained', True]) 是错误的 
# parser.parse_args(['--pretrained']) 此时parser.pretrained为True
# parser.parse_args([]) 此时parser.pretrained为False

# 定义可选参数input_size,长度为3,数据类型为int型
args = parser.add_argument('--input-size', default=None, nargs=3, type=int, metavar='N N N')
# parser.parse_args(['--input-size', '3 224 224']) 三个值用空格隔开
# 取值时使用args.input_size, 除了左侧开头的'-'被忽视,其它位置的'-'均被解析为'_'


# 定义可选参数torchscript
args = parser.add_argument('--torch-script', dest='torchscript', action='store_true',
                    help='torch.jit.script the full model') 
# parser.parse_args(['--torch-script'])  赋值为True,因为action='store_true'
# parser.parse_args([])  赋值为False,因为action='store_true'
# 取值时,使用args.torchscript dest对属性进行重命名了

# 定义可选参数sum
args = parser.add_argument('-sum',  dest='accumulate', action='store_const',
                     const=sum, default=max,
                     help='sum the integers (default: find the max)')
parser.parse_args(['-sum']) # args.accumulate的值为const定义的sum
parser.parse_args([]) # args.accumulate的值为default定义的max

# 定义可选参数move,其值只能是['rock', 'paper', 'scissors']中的一个
parser.add_argument('-move', choices=['rock', 'paper', 'scissors'])
parser.parse_args(['-move', 'rock'])
  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2022-08-19 19:00:11  更:2022-08-19 19:01:05 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 -2024/12/26 14:44:59-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码
数据统计