国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

Python中的命令行參數解析工具之docopt詳解

2020-02-23 04:29:09
字體:
來源:轉載
供稿:網友

前言

docopt 是一個開源的庫,代碼地址:https://github.com/docopt/docopt。它在 README 中就已經做了詳細的介紹,并且還附帶了很多例子可供學習,這篇文章也是翻譯一下 README 中內容……

docopt 最大的特點在于不用考慮如何解析命令行參數,而是當你把心中想要的格式按照一定的規則寫出來后,解析也就完成了。

docopt的安裝

docopt有很多種版本,分別支持不同的語言,最簡答的docopt支持python腳本,docopt.java支持java腳本,docopts則是支持shell腳本的(下面的例子主要以docopts為例),具體的可以參見github的docopt說明

安裝docopt

以mac os x為例安裝,安裝docopts前首先需要安裝docopt,有兩種安裝方法

方法一

比較簡單的方法是直接用 pip 安裝, pip install docopt==0.6.2

有些mac可能不支持直接pip 指令,需要先安裝pip

方法二

也可以在github上下載源碼(docopt是開源項目),然后通過python setup.py install 安裝

安裝docopts

安裝docopts就必須使用上面安裝docopt的方法二,在GitHub上下載源碼,然后 使用python安裝,下載地址

docopt 的實現簡單分析

在 Python 中有這么一個屬性 __doc__ ,它的值是字符串,一般表示幫助信息,而 docopt 正是利用了這一屬性,把幫助信息替換成命令行參數解析說明,再對它進行解析即可。

舉個 docopt 中的例子來說明:

"""Naval Fate.Usage: naval_fate.py ship new <name>... naval_fate.py ship <name> move <x> <y> [--speed=<kn>] naval_fate.py ship shoot <x> <y> naval_fate.py mine (set|remove) <x> <y> [--moored | --drifting] naval_fate.py (-h | --help) naval_fate.py --versionOptions: -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 docoptif __name__ == '__main__': arguments = docopt(__doc__, version='Naval Fate 2.0') print(arguments)

上述代碼段中,很大一段幫助信息就是我們的命令行參數解析說明,在函數入口處調用docopt函數進行解析,返回的arguments變量是一個字典型變量,它記錄了選項是否被選用了,參數的值是什么等信息,當程序從命令行運行時,我們就是根據arguments變量的記錄來得知用戶輸入的選項和參數信息。

所以如何寫好命令行參數解析說明就變得至關重要了,命令行解析信息包含兩部分,分別是使用模式格式和選項描述格式。

使用模式格式(Usage pattern format)

使用模式以usage:開始,以空行結束,如上代碼段所示,它主要描述了用戶添加命令行參數時的格式,也就是使用時的格式,解析也是按照此格式來進行的。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 新田县| 安化县| 瑞昌市| 江阴市| 奉新县| 大同县| 健康| 新乡市| 瓮安县| 错那县| 北海市| 道孚县| 丹江口市| 滁州市| 罗山县| 沾益县| 仁寿县| 汤原县| 江达县| 长春市| 瑞昌市| 凤翔县| 安仁县| 阿城市| 中宁县| 石门县| 吉首市| 登封市| 栾川县| 梨树县| 高要市| 贞丰县| 施甸县| 旺苍县| 五原县| 读书| 大荔县| 青河县| 昌都县| 宜章县| 余庆县|