python标准模块argparse,解析命令行中的可选参数 和 位置参数

argparse介绍:

argparse 模块是python的标准库,是一个命令行解析(分析)库。
可以处理命令行中的:可选参数 和 位置参数
命令行中的:位置参数 是必选的,前面不需要加 -
命令行中的:可选参数 是可选的,前面需要加 -来指定可选参数,如 -h(--help) -t -s(--src) -d(--dst) -n(--num) ....

命令行的格式:
  cmd>> python xx.py [可选参数1 可选参数2 ...] 位置参数1 位置参数2 ...

argparse官方文档:
https://docs.python.org/zh-cn/3/howto/argparse.html

基本用法:

导入:
  import argparse

实例化一个解析器:
  parser = argparse.ArgumentParser(description='描述脚本的作用'),参数如下:
    prog 可选,程序脚本的名称,默认值为:sys.argv[0]。
    usage 可选,程序脚本的使用说明,默认值为:根据参数自动生成。
    description 用于描述脚本的功能作用,默认为空。一般只指定description即可。
    epilog 可选, 显示完-help信息后的结尾文本。
    prefix_chars 可选,-命令的前缀,默认是"-" 。
    add_help 可选,是否增加-h/–help选项,默认是True。

添加命令行的位置参数(positional arguments):
  语法:parser.add_argument(dest,...,name=value,...)

  parser.add_argument(dest='w',nargs='*', type=argparse.FileType('br'), help='显示帮助的文本')
    dest 可以指定多个dest。字符串类型。给位置参数或可选参数关联的名字而已。
    name 可选,可以指定多个name。表示位置参数或可选参数的标识符名字。
    metavar 可选,字符串类型。可以描述dest的类型。
    nargs 可选,指定位置/可选参数后面的value有多少个,默认为1。可以指定:"*"(0个或多个value)、"+"(1个或多个value)、"?"(0个或1个)、整数。
    type  可选,指定位置/可选参数的数据类型,默认为str。可以指定是type=argparse.FileType('w'),参数需要指定模式,默认为'r'模式。
    choice 可选,指定位置/可选参数的取值范围。

添加命令行的可选参数(optional arguments):
  语法:parser.add_argument(option_string,option_string,...,name=value,...)

  parser.add_argument('-t', '--test', action='store_true',help='显示帮助的文本')
    action 可选,字符串类型,当读取的参数中出现指定参数的时候的行为。取值:'store_true'、'append_const'
    const 可选,可以指定内置函数(不需要带括号)
    default  可选,表示位置参数和可选参数的默认值,可以指定python中提供的类型 或 内置函数(不需要带括号)。默认值是default=sys.stdout。
    required 可选,表示可选参数必须输入,只支持可选参数的设置。指定布尔值类型,默认为True。

    注意:const 和 default 参数可以同时存在,同时存在的使用规则如下:
      如果cmd命令行中传入了这个 位置参数,则使用const指定的值,或调用const指定的内置函数
      如果cmd命令行中没传入这个 位置参数,则使用default指定的值,或调用default指定的内置函数

打印帮助信息:
  parser.print_help()

获取 位置参数 和 位置参数 进行解析:
  args = parser.parse_args() #返回一个Namespace对象。
    #该Namespace对象保存着 位置参数 和 可选参数的信息。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值