经常我们在编译Python代码的时候,会在命令行中增加自己指定的参数:
比如下面这个样子:
python main.py --dataset_dir=apple2orange --continue_train True
这上面就有3个Python的脚本参数,arg[0],arg[1],arg[2]
在main.py中有下面语句来让用户输入用户自己指定的参数.形式很固定,记住就好:
import argparse #首先导入该模块
parser=argparse.ArgumentParser(description="TEST:")#)#然后创建一个解析对象
#然后向该对象中添加你要关注的命令行参数和选项,每一个add_argument方法对应一个你要关注的参数或选项
parser.add_argument('--dataset_dir',dest='dataset_dir',default='input_data1',
help='path of the data')
parser.add_argument('--continue_train',dest='continue_train',type=bool,default=False,
help='if continue training, load the latest model: 1: true, 0: false')
#parser.add_argument('--date_out',dest='data_out',default='output_data1',
help='path of output data')
arg=parser.parse_args()#最后调用parse_args()方法进行解析,解析成功之后即可使用
有时候,大家还会遇到下面一句代码:
if len(sys.argv)==1:
parser.print_help()
sys.exit(1)
这句话就是的作用是,直接运行下面,
Python main.py
#这里值输入了一个脚本参数,故sys.argv长度为1.
就会输出help信息,就是parser.add_argument()中最后的help信息,提示用户参数怎么用.
同样,不加上面的
import sys
if len(sys.argv)==1:
parser.print_help()
sys.exit(1)
也可以通过
python main.py -h
输出帮助信息
有了以上的语句,然后就可以在命令行中加入命令了.
在代码中,有时候要产生文件夹,如果文件夹已经产生,就用下面代码来进行判断:
import os
if not os.path.exists(arg.dataset_dir ):
os.makedirs(arg.data_dir)
if not os.path.exists(arg.data_out):
os.makedirs(arg.data_out)
参考:https://blog.csdn.net/guoguoshizhuo/article/details/52539967
参考:https://www.cnblogs.com/ymjyqsx/p/6951028.html