Python命令行参数解析工具docopt安装和应用过程详解

  

<强>什么是docopt ?
  

  

1, docopt是一种Python编写的命令行执行脚本的交互语言。

  

它是一种语言!

  

它是一种语言!

  

它是一种语言!

  

2,使用这种语言可以在自己的脚本中,添加一些规则限制。这样脚本在执行的时候就必须按照这样格式来执行,同时,也可以很方便的编写一些帮助信息(其实很多软件在输入- h的时候显示信息,例如python - h,会显示所有的python指令,并且页通过docopt限制了python指令的格式)、下面是一些简单的例子:

  

<强> docopt的安装
  

  

docopt有很多把版本,分别支持不同的语言,最简单就是支持python语言,docopt。java支持java脚本,docopts则是支持shell脚本的(下面的例子主要事以docopts为例)

  

1,安装docopt

  

方法一:

        pip安装docopt      

方法二:

  

也可以在github上下载源码(docopt是开源项目),然后通过Python设置。py安装安装

  

2,安装docopts就必须使用上面的安装docopt的方法二来进行安装,然后使用python安装,下载地址:

  https://github.com/docopt/docopts

  

docopt实现简单分析
  

  

在Python中有这么一个属性__doc__,它的值是字符串,一般表示帮助信息,而docopt正是利用了这一属性,把帮助信息替换成命令行参数解析说明,在对它进行解析即可:

  

举个例子:

        ”““海军的命运。   用法:   naval_fate。py船新& lt; name>…   naval_fate。py船& lt; name>移动& lt; x>& lt; y>(——速度=& lt; kn>)   naval_fate。py船射击& lt; x>& lt; y>   naval_fate。py矿(设置|删除)& lt; x>& lt; y>(——停泊|——漂流)   naval_fate。py (- h |——帮助)   naval_fate。py——版本   选项:   - h——帮助显示该屏幕。   ——版本显示版本。   ——速度=& lt; kn>速度节(默认值:10)。   我——停泊停泊(固定)。   我——漂移漂移。   ”“”   从docopt进口docopt   if __name__==癬_main__”:   参数=docopt (__doc__ version=昂>?.0”)   打印(参数)      

上面代码中,很大一段帮助信息就是我们命令行参数解析说明,在函数入口调用了docopt函数进行解析,返回的参数变量是一个字典变量,它记录了选项是否被选用了,参数的值是什么等信息,当程序从命令行运行时,我们就是根据参数变量的记录来得知用户输入的选项和参数信息。

  

所以如何写好命令行参数解析说明就很重要了,命令行解析信息包含两部部分,分别是使用模式格式和选项描述格式。

  

<强>使用模式格式(使用模式格式)
  

  

使用模式格式用法:开始,以空行结束,如上述代码显示,它主要描述了用户添加命令含参数的格式,也就是使用时的格式,解析也是按照此格式来进行的。

  

每一个使用模式都包含以下元素:

  

*参数   

参数使用大写字母或者使用尖括号& lt;比;围起来

  

*选项   

选项以短横线开始或者———只有一个字母时格式- o,多于一个字母时,输出,同时还可以把多个单字母的选选项合并,ov等同于o、v - i。

。选项也能   

参数,此时别忘了给选项添加描述说明

  

接下来时使用模式中用到的一些标识的含义,正确的使用他们能够更好的完成解析任务:

  

* []   

代表可选的元素,方括号中的元素可有可无

  

* ()   

代表必要有的元素,括号内的元素必须要有,哪怕时多个里面选一个

  * |

  

互斥的元素,竖线两旁的元素只能有一个留下

  * ....

  

代表元素可以重复出现,最后解释的结果时一个列表

  *[选项]

  

指定特定的选项,完成特定的任务。

  

<强>选项描述格式(选项描述格式)
  

  

选项描述同样必不可少,尤其时方选项有参数,并且还需要为它赋默认值时。

  

为选项添加参数的格式有两种:

  
      <李> - o - FILE #不文件,输出是用逗号,使用=符号   <李>我& lt; file>,输入& lt; file>#使用逗号,不使用=符号   
  

为选项添加描述说明,只需要用两个空格分割选项和说明即可

  

为选项添加默认值时,把它添加到选择描述后面即可,格式如下【defailt: & lt; my-default-value>】

Python命令行参数解析工具docopt安装和应用过程详解