Python下使用argparse模块的脚本参数配置
python的一个用于命令行参数解析的模块,其专业解释已经有很多了,可以去详查,不做赘述,仅谈谈自己的一些理解。
为什么要用argparse模块来为代码导入参数或者文件路径呢?如果是一个简单的项目,输入参数只有几个,当需要更改输入文件的话可以在代码中直接更改,但如果输入参数或文件数量较多,或者更换频繁,再去一行行改代码会显得非常麻烦而且容易出错。argparse模块就是为了解决这个问题,该模块统一从命令行中调用需要使用的参数或文件路径,可以一次性完成输出参数读取工作,更改起来比较方便。
下面是一段典型的使用argparse模块的代码。
import argparse ap = argparse.ArgumentParser(description= '命令行中传入参数') ap.add_argument('-d', '--dataset', required=True, help='path to input dataset of images') #ap.add_argument('-m', '--model', required=True, help='path to output trained model') #ap.add_argument('-l', '--label-bin', required=True, help='path to output label binarizer') ap.add_argument('-p', '--plot', required=True, help='path to output accuracy/loss plot') args = vars(ap.parse_args()) print(args)
首先导入argparse库
import argparse
创建命令行解析端口,其中description中字符串是该解析端口的帮助说明
ap = argparse.ArgumentParser(description= '命令行中传入参数')
创建希望从命令行导入的参数对象,其中-d,--dataset为该参数的长短标签名,二者意义相同,required=True表示该项参数为必选输入项,若非必选可改成False,help为参数帮助说明。
ap.add_argument('-d', '--dataset', required=True, help='path to input dataset of images')
#ap.add_argument('-m', '--model', required=True, help='path to output trained model')
#ap.add_argument('-l', '--label-bin', required=True, help='path to output label binarizer')
ap.add_argument('-p', '--plot', required=True, help='path to output accuracy/loss plot')
该语句表示对参数进行解析,输入的参数储存到args中。
args = vars(ap.parse_args())
后续代码便可调用args完成各项任务。