當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。