zoukankan      html  css  js  c++  java
  • python命令行工具的使用——argparse

    argparse是一个常用的库函数,使用它的时候我们在命令行中不仅仅可以运行python文件,更可以零时调整参数,十分方便。

    首先,如果你只是希望传一丢丢数据进去,那么只看下面两行就行了

    import sys
    print("输入的参数为:%s" % sys.argv[1])
    >python demo.py 1
    输入的参数为:1

    但是当要传很多的时候,还是接着往下看

    基本用法,这是核心的两行:

    parser = argparse.ArgumentParser()
    parser.parse_args()

    然后是可以添加的部分

     
    # description参数可以用于描述脚本的参数作用,默认为空
    parser=argparse.ArgumentParser(description="A description of what the program does")
    
    parser.add_argument("echo")        # 默认参数的设定
    parser.add_argument("-v", "--verbosity", help="increase output verbosity")  #可选参数

    parser.parse_args()

    default:没有设置值情况下的默认参数

    parser.add_argument('--name', default='Great')

    required: 表示这个参数是否一定需要设置

      如果设置了required=True,则在实际运行的时候不设置该参数将报错 

    parser.add_argument('-name', required=True)

    type:参数类型

      默认的参数类型是str类型,如果你的程序需要一个整数或者布尔型参数,你需要设置type=inttype=bool

    parser.add_argument('-number', type=int)

    choices:参数值只能从几个选项里面选择

    parser.add_argument('-arch', required=True, choices=['alexnet', 'vgg'])

    help:指定参数的说明信息

    parser.add_argument('-arch', required=True, choices=['alexnet', 'vgg'],
            help='the architecture of CNN, at this time we only support alexnet and vgg.')

    dest:设置参数在代码中的变量名

      argparse默认的变量名是---后面的字符串,但是你也可以通过dest=xxx来设置参数的变量名,然后在代码中用args.xxx来获取参数的值

    nargs: 设置参数在使用可以提供的个数

    parser.add_argument('-name', nargs=x)

    x的候选值和含义如下

    N   参数的绝对个数(例如:3)
    '?' 0或1个参数
    '*' 0或所有参数
    '+' 所有,并且至少一个参数

    --toy:为参数名称
    -t:为参数别称
    action='store_true':参数是否使用,如果使用则为True,否则为False

    parser.add_argument('--toy','-t',action='store_true',help='Use only 50K samples of data')

    那么在py文件中如何调用呢?       parser.parse_args()

    #命令行输入参数处理
    parser = argparse.ArgumentParser()
    
    parser.add_argument('file')     #输入文件
    parser.add_argument('-o', '--output')   #输出文件
    parser.add_argument('--width', type = int, default = 80) #输出宽
    parser.add_argument('--height', type = int, default = 80) #输出高
    
    #获取参数
    args = parser.parse_args()
    
    IMG = args.file
    WIDTH = args.width
    HEIGHT = args.height
    OUTPUT = args.output
  • 相关阅读:
    MySQL插入数据获得自动增长的ID
    C#解决“System.Threading.ThreadStateException:“在可以调用 OLE 之前,必须将当前线程设置为单线程单元(STA)模式。请确保您的 Main 函数带有 STAThreadAttribute 标记。 只有将调试程序附加到该进程才会引发此异常”的异常
    C# 关闭当前窗体的时候打开另一个窗口
    C# WinForm中关闭指定的窗体
    MySQL 8.0 版本修改字符编码
    微信支付API v3接口使用应用篇
    Linux Tomcat安装篇(daemon运行,开机自启动)
    Linux nginx安装篇
    SpringCloud系列之Nacos+Dubbo+Seata应用篇
    SpringCloud系列之Nacos+Dubbo应用篇
  • 原文地址:https://www.cnblogs.com/xingnie/p/12360591.html
Copyright © 2011-2022 走看看