1. 总体流程
总体流程分为以下几个步骤 导入包
(1)导包
import argparse
(2)创建 ArgumentParser() 对象
parser = argparse.ArgumentParser()
(3)调用 add_argument() 方法添加参数
parser.add_argument("--device", type=str, default="cuda" if torch.cuda.is_available() else "cpu", help="Device (cuda or cpu)")
(4)使用 parse_args() 解析添加的参数
args = parser.parse_args()
2. add_argument()参数
parser.add_argument(name, [, action][, nargs][, const][, default][, type][, choices][, required][, help][, metavar][, dest])
- name:参数名称,例如 foo 或者 -f, --foo,注意若不加“-”或“- -”表示该参数是位置参数 ,位置参数按照设置的先后顺序读取,实际中不用设置参数名称,加了“-”或“- -”表示可选参数,“-”前缀表示短参,“- -”前缀表示长参
- action:action=“store_true”:参数是否使用,如果使用则为True,否则为False,当设置了action="store_true"时命令行传参只需填参数名即可,不传参表示为False
- nargs:应该读取的命令行参数个数,可以是具体的数字,或者是?号,当不指定值时对于 Positional argument 使用 default,对于 Optional argument 使用 const;或者是 * 号,表示 0 或多个参数;或者是 + 号表示 1 或多个参数
- default:不指定参数时的默认值
- type :命令行参数应该被转换成的类型
- choices:choices:候选值,输出参数必须在候选值里面,否则报错
- required:可选参数是否可以省略 (仅针对可选参数)
- help:参数的帮助信息,当指定为 argparse.SUPPRESS 时表示不显示该参数的帮助信息
3. 实例
import argparse
parser = argparse.ArgumentParser()
parser.add_argument("--filename", type=str, help="file names", default="reader.txt")
parser.add_argument("-num", type=int, help="the num of files", default = 100)
parser.add_argument("--score", "-s", type=float, help="competation score", default=0.0)
args = parser.parse_args()
print(args.filename)
print(args.num)
print(args.score)
直接运行输出:
reader.txt
100
0.0
在命令行中运行输出