Python中的argparse用法总结

简介

argparse 是python自带的命令行参数解析包,可以用来方便地读取命令行参数,当你的代码需要频繁地修改参数的时候,使用这个工具可以将参数和代码分离开来,让你的代码更简洁,适用范围更广。

使用方法

  1. 导入argparse
  2. 创建ArgumentParser对象,可添加描述(description)信息,表明这个对象的功能
  3. 添加参数处理,可添加多个。
# print_name.py中代码

import argparse

def get_parser():
    # 创建ArgumentParser对象,里面可以添加描述信息
    parser = argparse.ArgumentParser(description="Demo of argparse")
    # 添加参数处理
    parser.add_argument('--name', default='Great')
    
    return parser
    
if __name__ == '__main__':
    parser = get_parser()
    args = parser.parse_args()
    name = args.name
    print('name:%s' % name)


  • 执行结果
$ python print_name.py --name lhx

name:lhx

参数解析

  1. 变量名:

    • –name : 参数全名,需要加在参数上 如:python demo.py --name lhx
    • -n:参数简称,可与–name同时存在
    • ‘name’ 或者 dest=‘name’:参数名,提供参数占位符,必须填写,否则报错。如:python demo.py lhx
  2. default参数:提供参数默认值

  3. required:required=True表示这个参数必填,默认为False

  4. type:参数类型,默认是str ,如果需要int ,type=int即可

  5. choices:参数的值只能在几个选项中选择:

# file-name: choices.py
import argparse

def get_parser():
    parser = argparse.ArgumentParser(
        description='choices demo')
    parser.add_argument('-arch', required=True, choices=['alexnet', 'vgg'])

    return parser

if __name__ == '__main__':
    parser = get_parser()
    args = parser.parse_args()
    print('the arch of CNN is '.format(args.arch))
  1. help:指定参数的说明信息,可使用-h(–help)查看该信息。
# file-name: help.py
import argparse

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

    return parser


if __name__ == '__main__':
    parser = get_parser()
    args = parser.parse_args()
    print('the arch of CNN is '.format(args.arch))
$ python help.py -h
usage: help.py [-h] -arch {alexnet,vgg}

choices demo

optional arguments:
  -h, --help           show this help message and exit
  -arch {alexnet,vgg}  the architecture of CNN, at this time we only support
                       alexnet and vgg.
  1. nargs:设置参数的个数

    • 格式
    parser.add_argument('-name', nargs=x)
    
    • x的候选值以及含义
    含义
    N参数的绝对个数(如:3)
    ‘?’0或1个参数
    ‘*’0或多个参数
    ‘+’1或者多个参数
    • 举例
    # file-name: nargs.py
    import argparse
    
    def get_parser():
        parser = argparse.ArgumentParser(
            description='nargs demo')
        parser.add_argument('-name', required=True, nargs='+')
    
        return parser
    
    
    if __name__ == '__main__':
        parser = get_parser()
        args = parser.parse_args()
        names = ', '.join(args.name)
        print('Hello to {}'.format(names))
    
    $ python nargs.py -name A B C
    Hello to A, B, C
    
  2. metavar: 参数的名字,在显示 帮助信息时才用到.

  • 6
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值