python
python中argparse模块 -凯发ag旗舰厅登录网址下载
参考官方文档https://docs.python.org/zh-cn/3/library/argparse.html#nargs
python中参数解释器,使用流程:
import argparse parser = argparse.argumentparser() ## 新建参数解释器对象 parser.add_argument('-v') ## 添加参数 args = parser.parse_args(['-v', '3'])### 参数赋值,也可以通过终端赋值 ''' python test.py -v '''1. argparse.argumentparser()
class argparse.argumentparser(prog=none, usage=none, description=none, epilog=none, parents=[], formatter_class=argparse.helpformatter, prefix_chars='-', fromfile_prefix_chars=none, argument_default=none, conflict_handler='error', add_help=true, allow_abbrev=true, exit_on_error=true)
参数很多,一般都选默认。有时会设置usage–描述程序的用法.
2. parser.add_argument()
argumentparser.add_argument(name or flags...[, action][, nargs][, const][, default][, type][, choices][, required][, help][, metavar][, dest])
定义单个的命令行参数应当如何解析。每个形参都在下面有它自己更多的描述,长话短说有:
name or flags - 一个命名或者一个选项字符串的列表,例如 foo 或 -f, --foo。
action - 当参数在命令行中出现时使用的动作基本类型。
nargs - 命令行参数应当消耗的数目。
const - 被一些 action 和 nargs 选择所需求的常数。
default - 当参数未在命令行中出现并且也不存在于命名空间对象时所产生的值。默认值
type - 命令行参数应当被转换成的类型。
choices - 可用的参数的容器。
required - 此命令行选项是否可省略 (仅选项可用)。
help - 一个此选项作用的简单描述。
metavar - 在使用方法消息中使用的参数值示例。
dest - 被添加到 parse_args() 所返回对象上的属性名。
2.1 name or flags 参数名称
参数可以是位置参数,也可以是可选参数。parser.add_argument()调用时,根据名称前有无中划线‘-’,确定参数是位置参数还是可选参数。
- 可选参数
parser.add_argument('-f', '--foo') - 位置参数可以这么创建:
parser.add_argument('bar')
当 parse_args() 被调用,选项会以 - 前缀识别,剩下的参数则会被假定为位置参数。位置参数必须被赋值,可选参数可根据情况不赋值。
2.2 action 动作类型
可选值为: store, store_const,store_true, store_false
- store 默认值,设置的值都会保存
- store_const存储被 const 命名参数指定的值
foo未设置值,但是在参数列表中加了--foo,则foo=42,如果调用的时候,不传参数列表,foo=none。
这点与parser.add_argument('--foo', default=42)不同,此时,传个空的参数列表 给foo,foo的值为42。
如果传参数却不赋值,会报错
- store_true 和store_false 是store_const的特殊值,分别作为存储true 和 false
foo的action=store_true,传参列表中加了--foo,则foo=true
bar的action=store_false,传参列表中加了--bar,则bar=false
baz的action=store_false,传参列表中没加了--baz,则bar取与他存储值相反的值false
2.3 nargs 参数个数
- n - 表示前面的参数接收n个参数
- ? - 接收0或1个参数
- * - 接收0或多个参数
- - 接收1或多个参数,未传参数时,报错
2.3.1 ?配合default和const使用
nargs=?的变量,赋值的参数可以有0或1个
2.3.1 *
2.4 type 类型
type 关键字允许执行任何必要的类型检查和类型转换
foo的类型是int,bar的类型是str.两个参数传的值相同,但因为type类型不同,收到的参数值的类型不同
2.5 choice
从choice可取值的范围内设置一个值,否则会报错。
配合type,检查参数类型。
任何内部的 - 字符都将被转换为 _ 字符以确保字符串是有效的属性名称
与50位技术专家面对面20年技术见证,附赠技术全景图总结
以上是凯发ag旗舰厅登录网址下载为你收集整理的的全部内容,希望文章能够帮你解决所遇到的问题。
如果觉得凯发ag旗舰厅登录网址下载网站内容还不错,欢迎将凯发ag旗舰厅登录网址下载推荐给好友。
- 上一篇:
- 下一篇: 安装numpy,setuptools的时