官方文档地址
Python argparse使用方法介绍
1. argparse使用流程
import argparse
parser = argparse.ArgumentParser(description='Test.')
"""
参数分必选参数和可选参数
参数名前面没有'-'则代表是必选参数,传参时无需指定参数名,直接指定参数值即可(多个必选参数,按参数顺序解析)
参数名前面带有'-'或'--'表示是可选参数,解析成对象属性时,属性名会自动忽视左侧的'-',如-a,获取值时使用的是xxx.a
参数名除了开头有'-',其它位置也有'-'时,在解析成对象属性时,其它位置的'-'会转换为'_',如--a-b,获取值时使用的是xxx.a_b
"""
parser.add_argument('integer')
parser.add_argument('-a')
parser.add_argument('--b-c')
args = parser.parse_args()
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, 指定参数在引用时所对应的属性名称
args = parser.add_argument('data_dir', metavar='DIR',
help='path to dataset')
args = parser.add_argument('--dataset', '-d', metavar='NAME', default='',
help='dataset type (default: ImageFolder/ImageTar if empty)')
args = parser.add_argument('--pretrained', action='store_true', default=False,
help='Start with pretrained version of specified network (if avail)')
args = parser.add_argument('--input-size', default=None, nargs=3, type=int, metavar='N N N')
args = parser.add_argument('--torch-script', dest='torchscript', action='store_true',
help='torch.jit.script the full model')
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'])
parser.parse_args([])
parser.add_argument('-move', choices=['rock', 'paper', 'scissors'])
parser.parse_args(['-move', 'rock'])
|