使用Python中的命令列參數解析工具之docopt詳細介紹
docopt 是用來解析命令列參數的工具,當想要在 Python 程式後面附加參數時,就不需要再為此而發愁了。以下這篇文章主要介紹了Python中命令列參數解析工具之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
python setup.py install 安裝
##docopt 的實作簡單分析在Python 中有這麼一個屬性
__doc__ ,它的值是字串,一般表示幫助訊息,而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 --version Options: -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 if __name__ == '__main__': arguments = docopt(__doc__, version='Naval Fate 2.0') print(arguments)
上述程式碼片段中,很大一段幫助資訊就是我們的命令列參數解析說明,在函數入口處調用docopt函數進行解析,返回的arguments變量是一個字典型變量,它記錄了選項是否被選用了,參數的值是什麼等信息,當程序從命令行運行時,我們就是根據arguments變數的記錄來得知使用者輸入的選項和參數資訊。
所以如何寫好命令列參數解析說明就變得至關重要了,命令列解析資訊包含兩個部分,分別是使用模式格式和選項描述格式。
使用模式格式(Usage pattern format)#使用模式以usage:開始,以空白行結束,如上程式碼片段所示,它主要描述了使用者新增命令列參數時的格式,也就是使用時的格式,解析也是按照此格式來進行的。
每一個使用模式都包含以下元素:
* 參數
參數使用大寫字母或使用尖括號<>圍起來。
* 選項
選項以短橫線開始-或--。只有一個字母時格式-o,多於一個字母時--output。同時還可以把多個單字母的選項合併,-ovi等同於-o、-v、-i。選項也能有參數,此時別忘了為選項新增描述說明。
接下來是使用模式中用到的一些標識的意義,正確地使用他們能夠更好的完成解析任務:
##* []
代表可選的元素,方括號內的元素可有可無
* ()
代表必須要有的元素,括號內的元素一定要有,哪怕是多個裡面選一個。
* |
互斥的元素,豎線兩旁的元素只能有一個留下
* ...
代表元素可以重複出現,最後解析的結果是一個清單
* [options]
指定特定的選項,完成特定的任務。
#選項描述同樣必不可少,尤其是當選項有參數,並且還需要為它賦默認值時。
為選項新增參數的格式有兩種:-o FILE --output-FILE # 不使用逗号,使用 = 符号 -i <file>, --input <file> # 使用逗号,不使用 = 符号
為選項新增描述說明,只需要用兩個空格分隔選項和說明即可。
--coefficient=K The K coefficient [default: 2.95] --output=FILE Output file [default: test.txt] --directory=DIR Some directory [default: ./]
如果選項是可以重複的,那麼它的值
[default: ...]
了解 使用模式格式 和 選項描述格式 之後,再配合給的範例就能較好的理解了。
接下來就是得到輸入的資訊了。在前面提到arguments参数是一个字典类型,包含了用户输入的选项和参数信息,还是上面的代码段例子,假如我们从命令行运行的输入是
python3 test.py ship Guardian move 100 150 --speed=15
那么打印arguments参数如下:
{'--drifting': False, '--help': False, '--moored': False, '--speed': '15', '--version': False, '<name>': ['Guardian'], '<x>': '100', '<y>': '150', 'mine': False, 'move': True, 'new': False, 'remove': False, 'set': False, 'ship': True, 'shoot': False}
从打印信息可以看到,对于选项,使用布尔型来表示用户是否输入了该选项,对于参数,则使用具体值来表述。
这样一来,程序就可以从arguments变量中得到下一步的操作了。若是用户什么参数都没输入,则打印Usage说明提示输入内容。
以上是使用Python中的命令列參數解析工具之docopt詳細介紹的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

PHP主要是過程式編程,但也支持面向對象編程(OOP);Python支持多種範式,包括OOP、函數式和過程式編程。 PHP適合web開發,Python適用於多種應用,如數據分析和機器學習。

PHP適合網頁開發和快速原型開發,Python適用於數據科學和機器學習。 1.PHP用於動態網頁開發,語法簡單,適合快速開發。 2.Python語法簡潔,適用於多領域,庫生態系統強大。

Python更適合初學者,學習曲線平緩,語法簡潔;JavaScript適合前端開發,學習曲線較陡,語法靈活。 1.Python語法直觀,適用於數據科學和後端開發。 2.JavaScript靈活,廣泛用於前端和服務器端編程。

PHP起源於1994年,由RasmusLerdorf開發,最初用於跟踪網站訪問者,逐漸演變為服務器端腳本語言,廣泛應用於網頁開發。 Python由GuidovanRossum於1980年代末開發,1991年首次發布,強調代碼可讀性和簡潔性,適用於科學計算、數據分析等領域。

VS Code可以在Windows 8上運行,但體驗可能不佳。首先確保系統已更新到最新補丁,然後下載與系統架構匹配的VS Code安裝包,按照提示安裝。安裝後,注意某些擴展程序可能與Windows 8不兼容,需要尋找替代擴展或在虛擬機中使用更新的Windows系統。安裝必要的擴展,檢查是否正常工作。儘管VS Code在Windows 8上可行,但建議升級到更新的Windows系統以獲得更好的開發體驗和安全保障。

VS Code 可用於編寫 Python,並提供許多功能,使其成為開發 Python 應用程序的理想工具。它允許用戶:安裝 Python 擴展,以獲得代碼補全、語法高亮和調試等功能。使用調試器逐步跟踪代碼,查找和修復錯誤。集成 Git,進行版本控制。使用代碼格式化工具,保持代碼一致性。使用 Linting 工具,提前發現潛在問題。

在 Notepad 中運行 Python 代碼需要安裝 Python 可執行文件和 NppExec 插件。安裝 Python 並為其添加 PATH 後,在 NppExec 插件中配置命令為“python”、參數為“{CURRENT_DIRECTORY}{FILE_NAME}”,即可在 Notepad 中通過快捷鍵“F6”運行 Python 代碼。

VS Code 擴展存在惡意風險,例如隱藏惡意代碼、利用漏洞、偽裝成合法擴展。識別惡意擴展的方法包括:檢查發布者、閱讀評論、檢查代碼、謹慎安裝。安全措施還包括:安全意識、良好習慣、定期更新和殺毒軟件。
