[学习]探究python命令行(二)

在前一篇文章中,我们已经了解了如何使用argparse的基本步骤,以及一些参数的大致概念,本章将继续深究每个参数的具体用处。

ArgumentParser.add_argument(name or flags…[, action][, nargs][, const][, default][, type][, choices][, required][, help][, metavar][, dest])

[name or flags]

含义为:添加一个参数。

如果参数名称前没有‘-’或‘--’则该参数为必填参数,如果程序运行时不给它赋值则程序将抛出异常

注:此时实际上也是位置参数,就是通过位置而非是 - 或 -- 开头的参数来指定参数值。

比如,我们可以指定两个位置参数 x 和 y ,先添加的 x 位于第一个位置,后加入的 y 位于第二个位置。那么在命令行中输入 1 2的时候,分别对应到的就是 x 和 y。

>>> parser.add_argument('x')
>>> parser.add_argument('y')
>>> parser.parse_args(['1', '2'])
Namespace(x='1', y='2')

如果参数前有‘--’,‘-’则为可选参数。在输入‘--参数’,‘-参数’ 后再赋值。 

   

注意:其中‘--’来指定长参数,‘-’来指定短参数。实际上,短参数是长参数的别名,如果给别名赋值,相当于给长参数赋值。

[action]

参数动作,分为如下8类别:

store  保存参数值,可能会先将参数值转换成另一个数据类型。若没有显式指定动作,则默认为该动作。它通常用于给一个参数指定值

store_const 保存一个被 const 命名的固定值。当我们想通过是否给定参数来起到标志的作用,给定就取某个值,就可以使用该参数动作。

store_ture/store_false  保存相应的布尔值。这两个动作被用于实现布尔开关。

append  将值保存到一个列表中。若参数重复出现,则保存多个值。

append_const  将一个定义在const中的值保存到一个列表中。如果定义了相同的dest,则放入同一个列表中,否则就分别放入其参数名称下的列表中。

count  计算参数出现过的次数

help  打印解析器中所有选项和参数的完整帮助信息,然后退出。

version 打印关于程序的版本信息,然后退出

[nargs]

用来定义一个参数可以有多个值。

若nargs=N,则要求该参数提供N个值

若nargs=?,则要求该参数提供0或1个值

若nargs=*,则要求该参数提供0或多个值

若nargs=+,则要求该参数提供1或多个值

[dest]

解析后的参数名称,默认情况下,对于可选参数选取最长的名称,中划线转换为下划线。

类似重命名,可以让两个不同的可选参数取一个参数名称,例如在action=append_const中那样运用。

[const]

用于给参数赋值,可以是数值,也可以是函数。

[default]

用于在命令行中不传参数值的情况下的默认取值,可通过 default 来指定。如果不指定该值,则参数默认值为 None

[type]

参数类型 就是解析器参数值是要作为什么类型去解析,默认情况下是 str 类型。我们可以通过 type 入参来指定参数类型。

argparse 所支持的参数类型多种多样,可以是 intfloatbool等,比如:

也可以将函数作为参数传进去,从而进行类型检查和类型转换,比如:

[choices]

就是限定参数值的内容,通过 choices 入参指定。如果超出先定数值的内容,就会报错。

有些情况下,我们可能需要限制用户输入参数的内容,只能在预设的几个值中选一个,那么 可选值 就派上了用场。

比如:  parser.add_argument('--mode', choices=('read-only', 'read-write'))

[required]

可选参数是否可以省略 (仅针对可选参数),当required为True时,在输入命令时需要显示该参数。

[metavar]

在 usage 说明中的参数名称,对于必选参数默认就是参数名称,对于可选参数默认是全大写的参数名称。

[help]

参数的帮助信息,当指定为 argparse.SUPPRESS 时表示不显示该参数的帮助信息。

 

以上就是parser内的各种参数的结石和用法。

 

 

感谢:

https://mp.weixin.qq.com/s/WA--NZ2TPuIaIj4jnKZS6A

 


                         


             

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值