linux下:Python-命令行输入参数学习(argparse模块,sys模块,os模块)

经常我们在编译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

猜你喜欢

转载自blog.csdn.net/CV_YOU/article/details/80142617