python模块——argparse模块

一、使用argparse定义命令行步骤

1.创建解析器

parser=argparse.ArgumentParser(description='Process some intergers.')

2.添加参数

parser.add_argument('integers', metavar='N', type=int, nargs='+', help = 'an integer for the accumulator')

3.参数使用

print parser.integers

二、解析器的使用说明

    解析器中所使用到的参数,都是可选参数。

#创建解析器
argparse.ArgumentParser(prog=None,usage=None,description=None,epilog=None,version=None,parents=[],formatter_class=HelpFormatter,prefix_chars='-',fromfile_prefix_chars=None,argument_default=None,conflict_handler='error',add_help=True):

#可选参数
prog -- 程序的名称(默认: sys.argv[0],prog猜测是programma的缩写)
usage --描述程序用途的字符串(默认值:从添加到解析器的参数生成)
description -- 在参数帮助文档之后显示的文本 (默认值:无)
epilog -- 参数描述后面的文本
parents -- 应该将其参数复制到此解析器中的解析器
formatter_class -- 用于打印帮助消息的HelpFormatter类
prefix_chars --作为可选参数前缀的字符
fromfile_prefix_chars --作为包含附加参数的文件的前缀的字符
argument_default -- 所有参数的默认值
conflict_handler -- 指示如何处理冲突的字符串
add_help -- Add a -h/-help option

三、添加命令行参数使用选项说明

#添加参数命令
parser.add_argument(属性)

#可选属性
第一个参数(即以--开头的字符串):代表的是命令行该参数显示的名称。
type:参数的类型,会将输入的参数做一个验证,并返回值。值有convert_to_uppercase、convert_to_lowercase、str2bool、str2dict、str2dict_type。
nargs:该参数输入的值,将会返回一个列表。
    value will be produced.  Other values include:
    - N (an integer) consumes N arguments (and produces a list)
    - '?' consumes zero or one arguments
    - '*' consumes zero or more arguments (and produces a list)
    - '+' consumes one or more arguments (and produces a list)
default:指定默认值
choices:指定选择项
required:是否为必选项
metavar:使用帮助中的名称
action:是解析器的基类,典型的值为:
    'store_true':此项的值为True
    'store_false':此项的值为False
    'append':将输入的值,返回一个列表。该参数可以被多次录入,譬如: --name name1 --name name2 #输出为['name1', 'name2']

1.多个值中选择一个

#file name:zpp.py
import argparse
from neutronclient.common import utils

parser = argparse.ArgumentParser()
parser.add_argument('--num', choices=['1', '2', '3'])
p=parser.parse_args()
print p.num

#python zpp.py --num 1

2.多个值中选择多个

#file name:zpp.py
import argparse
from neutronclient.common import utils

parser = argparse.ArgumentParser()
parser.add_argument('--num', action='append', choices=['1', '2', '3'])
p=parser.parse_args()
print p.num


[root@controller ~]# python zpp.py --num 1 --num 2
['1', '2']

3.多值返回列表

#file name: zpp.py

import argparse
from neutronclient.common import utils

parser = argparse.ArgumentParser()
parser.add_argument('--num', nargs='+')
p=parser.parse_args()
print p.num

[root@controller ~]# python zpp.py --num 1 2 3 4 5
['1', '2', '3', '4', '5']

4.返回一个字典类型的值

#file name:zpp.py
import argparse
from neutronclient.common import utils

parser = argparse.ArgumentParser()
parser.add_argument('--num', type=utils.str2dict_type(required_keys=['start', 'end']))
p=parser.parse_args()
print p.num


[root@controller ~]# python zpp.py --num start=1,end=5
{'start': '1', 'end': '5'}



5.返回一个复合类型[{}, {}]

#file name: zpp.py
import argparse
from neutronclient.common import utils

parser = argparse.ArgumentParser()
parser.add_argument('--num', nargs='*', type=utils.str2dict_type(required_keys=['start', 'end']))
p=parser.parse_args()
print p.num


[root@controller ~]# python zpp.py --num start=1,end=5 start=10,end=20 start=30,end=40
[{'start': '1', 'end': '5'}, {'start': '10', 'end': '20'}, {'start': '30', 'end': '40'}]

6.添加互斥选项

#file name:zpp.py

import argparse
from neutronclient.common import utils

parser = argparse.ArgumentParser()
args = parser.add_mutually_exclusive_group()
args.add_argument('--route')
args.add_argument('--no_route')
p=parser.parse_args()
print p.route
print p.no_route


[root@controller ~]# python zpp.py --no_route 22
None
22

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值