当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python Docopt用法及代码示例


Docopt 是一个命令行接口说明模块。它可以帮助您定义命令行应用程序的接口并为其生成解析器。 docopt 中的接口消息是形式化的帮助消息。

安装

您可以通过多种方式安装 docopt 模块,pip 是安装 docopt 的最佳方式之一。

$pip install docopt

注意: 文档也使用 Python 2.5、2.6、2.7、3.2、3.3 和 PyPy 进行了测试。

初始化

docopt 最常用于显示帮助消息,并通过 -h 或 -help 选项调用。您可以使用以下命令导入并调用该模块。


from docopt import docopt 
  
docopt(doc, argv = None, version = None, 
       help = True, options = False) 

模块参数如下图所示:

  • doc : 它是一个包含帮助消息的文档字符串 (__doc__)。
  • argv : 它是一个可选参数向量,包含字符串列表。
  • version : 它是一个可选参数,提及程序的版本。
  • help : 负责显示帮助消息。默认情况下为 True。
  • options_first:这不允许混合位置参数和可选参数。默认情况下为 False。

使用模式

docopt 使您可以对帮助页面进行强有力的控制,它由不区分大小写的 use 关键字组成,后面跟着 program_name。使用模式可以用下面提到的各种元素来说明:


usage =
''' 
Usage :  
  program_name.py command --option 
  program_name.py [optional argument] 
  program_name.py --another-option =<argument> 
  program_name.py (--option1 | --option2 ) 
  program_name.py  <argument>... 
  
'''

<argument>argument:以“<”开始并以“>”结束的元素称为位置参数。它对位置敏感。

-选项-o:以“-”或“-”开头的元素称为长选项或短选项。它可以被称为--option或者-o.

  -h, --help     Display help
  -o, --option   Display options
  -l, --all      List all
  -q, --quit     exit
  --version      Version 3.6.1 

[可选参数]:以“[”开头并以“]”结尾的元素称为可选参数。它被认为是可选的。

<参数>...:当左侧的元素可以重复多次时,使用省略号“…”。

(必需的参数):以“(” 开头并以“)” 结尾的元素是必需元素。(--option1 | --option2)表示需要 -option1 或 -option2 之一。

例子:


# filename ='docopt_example.py" 
  
usage =''' 
Usage: 
    
  docopt_example.py  [(<name1>|<name2>)] <name3>... 
  docopt_example.py  mov <name1> <name2> 
  docopt_example.py  (--h|--q) [<name1> -l] 
  docopt_example.py  --version 
  
Options: 
  
  -l, --all      List all. 
  -q, --quit     exit. 
  --version      Version 3.6.1  
  -h --help      Show this screen. 
  --version      Show version. 
  --speed =<kn>   Speed in knots [default: 10]. 
  --moored       Moored (anchored) mine. 
  --drifting     Drifting mine.    
    
'''  
    
from docopt import docopt 
args = docopt(usage) 
print(args) 

输出:



相关用法


注:本文由纯净天空筛选整理自soniyanagaraj30大神的英文原创作品 Docopt module in Python。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。