美文网首页
argparse(命令行参数解析)用法

argparse(命令行参数解析)用法

作者: SephiHorse | 来源:发表于2019-12-11 16:45 被阅读0次
    //一般流程
    import argparse
    parser = argparse.ArgumentParser()
    parser.add_argument(...)
    args = parser.parse_args()
    

    现假设运行python文件命令为python test.py
    如果要添加某个必需整型参数可以用

    parser.add_argument('essential',type=int)
    print(args.essential)
    

    来获取参数。运行时命令为python test.py 100
    会显示100,如果给的不是整型就报错

    如果要添加某个可选参数可以用

    parser.add_argument('-o')
    print(args.o)
    

    或者

    parser.add_argument('-o','--optional')
    print(args.optional)
    

    设置了长参数后parser中的变量名就需要跟长参数名一样了
    运行时命令为python test.py -o hello或者python test.py --optional hello
    如果不指定-o打印出的结果为None
    当然也可以用

    parser.add_argument('-o','--optional',default = '123')
    print(args.optional)
    

    来指定该参数的默认值,这样命令行不传入参数时打印出的就是123
    还有一种可选是不需要传值的可选参数,使用action参数,比如用

    parser.add_argument('-train',action = 'store_true')
    print(args.train)
    

    来告诉模型是训练还是测试,命令行中只需要
    python test.py -train最后打印结果就为True否则为False

    最后是参数名重复问题,遵循命令行右值覆盖左值原则,比如命令行中为
    python test.py 1 -a 2 无论代码里是

    parser.add_argument('-a')
    parser.add_argument('a')
    

    还是

    parser.add_argument('a')
    parser.add_argument('-a')
    

    最终print(args.a)的结果都为2也就是-a的值
    当然正常人写代码肯定不会写重复参数的,所以搞懂这个没有任何使用价值

    相关文章

      网友评论

          本文标题:argparse(命令行参数解析)用法

          本文链接:https://www.haomeiwen.com/subject/wfjvgctx.html