写点什么

python 使用命令行传入参数

用户头像
卤蛋翔
关注
发布于: 2021 年 06 月 03 日

此包用于解析命令行传入的参数。使用时有如下两种使用方式,个人推荐方式二。

方式一、

在 py 文件内先写好接受的参数

import argparse
parser = argparse.ArgumentParser(description='manual to this script') parser.add_argument('--gpus', type=str, default = None) #定义gpus参数parser.add_argument('--batch-size', type=int, default=32) #定义batch_size参数parse.add_argument('--p',type=float, default=0.25) #定义p参数parse.add_argument('--author', type=bool, default=True) #定义author参数
args = parser.parse_args() #解析命令行传入的参数
print(args.gpus) #打印传入的gpus参数print(args.batch_size) # 打印batch_size参数print(args.p) # 打印 p参数
复制代码


调用时

python script.py --gpus=0,1,2 --batch-size=10 --p=0.3 --author 15 #传入参数gpus="0,1,2",batch-size=32,p=0.25,author=True
复制代码


ps:常用到的类型有 bool, int, str, float。bool 类型的解析比较特殊,传入任何值都会被解析成 True,传入空值时才为 False


方式二、

上面我们写的是 parser.parse_args()。但是这样会解析所有的参数,即使有些参数不是传给这个脚本的。

可以用 parse_known_args()来替代,当存在额外参数时,解析不会产生错误。 而是会返回一个由两个条目构成的元组,其中包含带成员的命名空间和剩余参数字符串的列表。

在 py 文件中定义参数:

import argparse
parser = argparse.ArgumentParser()parser.add_argument("--index1",type=int,default=0)parser.add_argument("--index2",type=int,default=0)
args = parser.parse_known_args()[0]
index = np.array([args.index1,args.index2]).reshape(1,2,1)
复制代码

在命令行中调用

python main.py --index1 10 --index2 14 #传入参数index1=10,index2=14
复制代码


发布于: 2021 年 06 月 03 日阅读数: 10
用户头像

卤蛋翔

关注

还未添加个人签名 2020.11.23 加入

还未添加个人简介

评论

发布
暂无评论
python使用命令行传入参数