python标准库: argparse模块

https://www.jianshu.com/p/fef2d215b91d
1、定义:argparse是python标准库里面用来处理命令行参数的库

2、命令行参数分为位置参数和选项参数:
位置参数就是程序根据该参数出现的位置来确定的
如:[root@openstack_1 /]# ls root/ #其中root/是位置参数
选项参数是应用程序已经提前定义好的参数,不是随意指定的
如:[root@openstack_1 /]# ls -l # -l 就是ls命令里的一个选项参数
3、使用步骤:

		(1)import argparse    首先导入模块
        (2)parser = argparse.ArgumentParser()    创建一个解析对象
		(3)parser.add_argument()    向该对象中添加你要关注的命令行参数和选项
		(4)parser.parse_args()    进行解析

4、argparse.ArgumentParser()方法参数须知:一般我们只选择用description

		 	prog=None     - 程序名
    		description=None,    - help时显示的开始文字
     		epilog=None,     - help时显示的结尾文字
    		parents=[],        -若与其他参数的一些内容一样,可以继承
    		formatter_class=argparse.HelpFormatter,     - 自定义帮助信息的格式
    		prefix_chars='-',    - 命令的前缀,默认是‘-’
    		fromfile_prefix_chars=None,     - 命令行参数从文件中读取
    		argument_default=None,    - 设置一个全局的选项缺省值,一般每个选项单独设置
    		conflict_handler='error',     - 定义两个add_argument中添加的选项名字发生冲突时怎么处理,默认处理是抛出异常
    		add_help=True    - 是否增加-h/--help选项,默认是True)

5、add_argument()方法参数须知:

			name or flags...    - 必选,指定参数的形式,一般写两个,一个短参数,一个长参数
 			action	表示值赋予键的方式,这里用到的是bool类型,action意思是当读取的参数中出现指定参数的时候的行为
 			default: 参数默认值
			help		可以写帮助信息 
			required    - 必需参数,通常-f这样的选项是可选的,但是如果required=True那么就是必须的了

			type   - 指定参数类型,使用这个参数,转换输入参数的具体类型,这个参数可以关联到某个自定义的处理函数,这种函数通常用来检查值的范围,以及合法性
			choices    - 设置参数的范围,如果choice中的类型不是字符串,要指定type表示该参数能接受的值只能来自某几个值候选值中,除此之外会报错,用choice参数即可
			nargs    - 指定这个参数后面的value有多少个,默认为1。分析:nargs还可以'*'用来表示如果有该位置参数输入的话,之后所有的输入都将作为该位置参数的值;‘+’表示读取至少1个该位置参数。'?'表示该位置参数要么没有,要么就只要一个。(PS:跟正则表达式的符号用途一致。)
			dest   - 设置这个选项的value解析出来后放到哪个属性中
>>> parser = argparse.ArgumentParser(prog='PROG')
>>> parser.add_argument('-f', '--foo')
>>> parser.add_argument('bar')
>>> parser.parse_args(['BAR'])
Namespace(bar='BAR', foo=None)
>>> parser.parse_args(['BAR', '--foo', 'FOO'])
Namespace(bar='BAR', foo='FOO')
>>> parser.parse_args(['--foo', 'FOO'])
usage: PROG [-h] [-f FOO] bar
PROG: error: the following arguments are required: bar

我猜测: ‘bar’必须传入,’-f’’-ff’不是必须传入

6、 action:默认为store

store_const,值存放在const中:

>>> parser = argparse.ArgumentParser()
>>> parser.add_argument('--foo', action='store_const', const=42)
>>> parser.parse_args('--foo'.split())
Namespace(foo=42)

store_true和store_false,值存为True或False

>>> parser = argparse.ArgumentParser()
>>> parser.add_argument('--foo', action='store_true')
>>> parser.add_argument('--bar', action='store_false')
>>> parser.add_argument('--baz', action='store_false')
>>> parser.parse_args('--foo --bar'.split())
Namespace(bar=False, baz=True, foo=True)

append:存为列表

>>> parser = argparse.ArgumentParser()
>>> parser.add_argument('--foo', action='append')
>>> parser.parse_args('--foo 1 --foo 2'.split())
Namespace(foo=['1', '2'])

append_const:存为列表,会根据const关键参数进行添加:

>>> parser = argparse.ArgumentParser()
>>> parser.add_argument('--str', dest='types', action='append_const', const=str)
>>> parser.add_argument('--int', dest='types', action='append_const', const=int)
>>> parser.parse_args('--str --int'.split())
Namespace(types=[<type 'str'>, <type 'int'>])

count:统计参数出现的次数

>>> parser = argparse.ArgumentParser()
>>> parser.add_argument('--verbose', '-v', action='count')
>>> parser.parse_args('-vvv'.split())
Namespace(verbose=3)

help:help信息

version:版本

>>> import argparse
>>> parser = argparse.ArgumentParser(prog='PROG')
>>> parser.add_argument('--version', action='version', version='%(prog)s 2.0')
>>> parser.parse_args(['--version'])
PROG 2.0
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值