Python argparse

# import sys
import argparse


# 获取终端输入有两种方式, sys.argv 和 argparse, 这里选择argparse
def argparse_m():

    parser = argparse.ArgumentParser(description="Process RenderFarm params", usage="请使用'%(prog)s -h'命令获取使用帮助")
    # parser.print_help()
    parser.add_argument("-t", "--tasktype", required=True, choices=["render", "analyse"], dest="tasktype", help= "请输入任务类型, render或者analyse")
    parser.add_argument("-i", "--taskid", required=True, dest="taskid", help= "请输入任务id")
    parser.add_argument("-d", "--config_data_id", required=True, dest="config_data_id", help= "请输入配置中心唯一标识")
    parser.add_argument("-c", "--config_server_host", required=True, dest="config_server_host", help= "请输入配置中心host地址")
    parser.add_argument("-p", "--config_server_port", required=True, dest="config_server_port", help= "请输入配置中心port端口号")
    parser.add_argument("-n", "--node_host", required=True, dest="node_host", help= "请输入渲染节点IP")
    parser.add_argument("-e", "--e_uuid", required=True, dest="e_uuid", help= "请输入渲染节点UUID")
    parser.add_argument("-f", "--frame_number", dest="frame_number", help= "请输入渲染帧数(单数)")
    parser.add_argument("-s", "--frame_step", dest="frame_step", help= "请输入渲染间隔帧")
    parser.add_argument("-l", "--layer_name", dest="layer_name", help= "请输入渲染层名")
    parser.add_argument("-u", "--frame_uuid", dest="frame_uuid", help= "请输入渲染帧的UUID")
    parser.add_argument("-a", "--layer_uuid", dest="layer_uuid", help= "请输入渲染层的UUID")

    args =  parser.parse_args().__dict__
    if len(args) != 12:
        print("参数错误")
    else:
        return args


# def argv_m():
#     params = sys.argv
#     print(params)


'''
DOC:
    parser = argparse.ArgumentParser(description="xxx", prefix_chars="-+")
        创建parser对象时可以是用prefix_chars指定参数前缀字符串, prefix-chars="-+", 也就是可以是用 "-" 或者 "+" 作为前缀字符,
    注意添加参数只能是用限定字符前缀

    nargs参数  parser.add_argument(nargs=4)      指定参数后面的value有几个
        例子: -t 1 2 3 4                  指定nargs为4, 它会把参数后四个value全部接受
    default参数 parser.add_argument(default="默认值")    设定该参数的默认值=

    required参数 parser.add_argument(required=True)   一般 -t 这样的参数是可选的, 使用这个参数就变成必须的了

    choices - 设置参数值的范围,如果choices中的类型不是字符串,记得指定type哦 #parser.add_argument(“-y”, choices=[‘a’, ‘b’, ‘d’])

    dest    #返回的字典的名称, 对象的属性名,要添加到返回值的对象的属性的名称,
        parser.add_argument(dest="abc")     Namespace(abc='task', d='d', id='id')

'''


'''
python executor_input.py -t analyse -i task001  -d cg_py_config.json -c 192.168.1.174 -p 8848 -n 192.168.1.82 -e 123456
'''
posted @ 2020-12-21 15:19  道友请留步W  阅读(85)  评论(0)    收藏  举报