zoukankan      html  css  js  c++  java
  • python argparse模块

    argparse模块是python用于解析命令行参数,比如python train.py --lr 0.1,这个值为0.1的lr参数只能通过argparse模块传递给python程序内部。

    一般过程:

      import argparse                

      parser = argparse.ArgumentParser()      

      parser.add_argument()              

      parser.parse_args() 调用parse_args()方法进行解析,解析成功之后即可使用

    参数可以分为定位参数和可选参数两种:

      定位参数:

        默认是必需的,可以类比函数中不带默认值的参数,因此调用时按顺序读入的参数与设置好的定位参数一一对应,不需要添加“-”来指示参数名称。

    import argparse
    
    parser = argparse.ArgumentParser()
    parser.add_argument("hello")
    args = parser.parse_args()
    arg1 = args.hello

    像这样便定义了一个hello参数,解析后的参数存放在了args.hello里,这里赋给了arg1

      可选参数:

        有下面两种方式:

        1.通过-来指定短参数,比如-h

        2.通过来指定长参数,比如--help

        上面的两种方式可以共存,也可以只存在一个。自己的理解:短参数和长参数的区别是短参数后面接的命名字母少(1个),长参数后面接的命名字母长

    action:参数出发的动作

    有6种,默认是store,存储值到默认变量

    1.parser.add_argument('-b', action="store", dest="b")
    
    2.parser.add_argument('-b', action="store", dest="b",default=1,type=int)

    1这种情况,如果没有在命令行给定b值,那最终内部程序也无法获得这个参数的值(访问参数会变为none);2这种情况,即使命令行没有给定b的值,并且也不需要-b来表示,都可以把值赋给b,因为默认采用action store,就把default的值赋过去了。并且这种使用default还有一个好处,如果你不需要改变这个参数的值,就不用在命令行输入,如果需要改变了,再在命令行直接改值就好了。

    3.parser.add_argument('-b', action="store",dest="b",default=1,type=int)
    
    
    4.parser.add_argument('--use_tfb', dest='use_tfboard',help='whether use tensorboard',action='store_true')

    上述的1、2其实都是使用的action store,可以不在里面写明action="store"这种东西。对于action store_true,使用方式是在命令直接添加长短参数,即:--use_tfb(后面不接任何参数,因为本身这个赋值就只能true false),这样use_tfb被赋值为true;不在命令行中添加--use_tfb,use_tfb的参数就为false(不会出现这个参数没有值变为none,而是赋值为false)

      parser.add_argument('--o', dest='optimizer',
                          help='training optimizer',
                          default="sgd", type=str)

    如果提供dest参数,参数值就保存为命令行参数解析时返回的命名空间对象中名为该 dest 参数值的一个属性,也就是说dest是解析后的参数名称。解析后,在程序内部访问这个参数就使用dest的名称,而不再是长参数的名称。如果没有dest,就用长参数去掉--,即上面的字母‘o’。

    1.在运行命令行时用--o

    2/程序内部需要访问这个参数时使用optimizer

    以后看程序怎么运行就可以看argparse模块在代码中是如何设置的

  • 相关阅读:
    BeautifulSoup
    python爬虫操作excel
    requests
    urllib
    线程的基本用法
    WebView
    播放多媒体文件
    调用摄像头和相册
    03 pycharm编辑默认模板
    测试
  • 原文地址:https://www.cnblogs.com/ymjyqsx/p/10071963.html
Copyright © 2011-2022 走看看