Python学习笔记-2


参数解析 Argueparse

import argparse
    parse = argparse.ArgumentParser(description="ResNet based model parameters")
    parse.add_argument("--data", default="CUB", type=str)
    parse.add_argument("--root", default=root)
    parse.add_argument("--crop_size", nargs=2, default=[300,300], type=int)
    parse.add_argument("--resize", nargs=2, default=[224, 224], type=int)
    parse.add_argument("--model_name", type=str, default="ResNet-50")
    parse.add_argument("--mode", type=str, choices=["train","test"], default="train")
    parse.add_argument("--cuda", type=str, choices=["cpu","gpu"], default="cpu")
    parse.add_argument("--version_description", type=str, required=True)
    args = parse.parse_args()

ArguementParse(prog, description, usage, epilog)
申请一个 参数解析 对象,

  • prog : 程序名称,默认是 arg[0],也可以自己更改
  • usage:参数用法
  • description :简述这个程序做什么
  • epilog:写在文档的最后

还有一些参数就不列举了或者以后更新。

一份文档大概是这样的:
usage: program.py [-h] [-c]
description:这个文档是还用来...

optional arguments:
 -h :  ....
 -c : ...

epilog :...

parse.add_argument():增加参数

  • name / flag :名称或标记
    这个我查了好久才明白,我太笨了。
    在我们调用程序的时候,命令行可以这么写:

    # 长命令行
    python program --size 124
    # 短命令行
    python program -s 124
    # 直接赋值
    python program 124
    

    相应的 add_argment()的code:

    parse.add_argument('-s')
    parse.add_argument('--size')
    parse.add_argument('size')
    

    在解析后的参数列表中,就会有这个 key。

    parse.add_argument("size")
     	>>  python config.py 124
     	
    print(args)
        >>  Namespace(size='124')
    print(args.size)
    	>>  124
    
  • action:这个参数我用的不是很明白,一看到它,我就想到了 Qt。。。

  • nrgs:这个也挺复杂的,这里我就只先记下,我用到的:

    • N :后面可以拿走几个参数
    parse.add_argument("size", nargs=2)
    	>> python config.py 124 124 
    print(args)
    	>> Namespace(size=['124', '124'])
    print(args.size)
    	>> ['124', '124']
    

    注意,-s 以及--size的写法也相同,不赘述。

  • default:默认值

  • type:类型

  • choices:对参数值做出限制,只能在提供的 choices列表 中选择参数

  • required:表示这个参数是必须的,默认都不行

  • help:在 optional argument 中对参数的说明

  • dest:指定这个参数的变量名

parse.add_argument("--img", dest="image_path", type=str)
args = parse.parse_args()

print(args.image_path)

parse.parse_args(args=None, namespace=None)
-args:这个值可以是 命令行, 也可以没有
-namespace:命名空间
参数字符从 sys.argv中获得,进行解析后,将解析得到的变量放入 namespace命名空间上。对于 python 的命名空间,暂时也不是很清楚。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值