橡皮擦,一個(gè)逗趣的互聯(lián)網(wǎng)高級(jí)網(wǎng)蟲。
本篇博客將為你帶來 10 個(gè) Python 中的參數(shù)解析庫(kù),Python 自帶的這些【模塊軍火庫(kù)】,一定要了解,畢竟多掌握一個(gè)庫(kù),你解決問題的時(shí)候就多了一條路。
何為參數(shù)解析庫(kù)
sys.argv
getopt 內(nèi)置的參數(shù)解析庫(kù)
docopt 參數(shù)解析庫(kù)
optparse 參數(shù)解析庫(kù)
argparse 參數(shù)解析庫(kù)
click 參數(shù)解析庫(kù)
fire 參數(shù)解析庫(kù)
typer 參數(shù)解析庫(kù)
Commando 參數(shù)解析庫(kù)
FLAGS 參數(shù)解析庫(kù)
寫在后面
在對(duì) Python 一段小腳本運(yùn)行的時(shí)候,通過 python test.py 參數(shù)1 參數(shù)2 參數(shù)3
形式,可以向 Python 腳本內(nèi)部傳遞參數(shù),用于解析參數(shù)的庫(kù)就是參數(shù)解析庫(kù)。
最傳統(tǒng)的寫法,也是 Python 內(nèi)置的內(nèi)容,例如下述代碼:
import sysprint(sys.argv)
當(dāng)你通過下述命令運(yùn)行 Python 腳本時(shí),就可以獲取到一個(gè) list
類型的參數(shù)列表。
python test.py 1 2 3
對(duì)于 sys.argv
而言,得到的只是一個(gè)列表,通過 getopt
參數(shù)解析庫(kù),可以獲取參數(shù)。
getopt
庫(kù)中核心的函數(shù)是 getopt.getopt()
,具體參數(shù)與使用方式,可以參見滾雪球系列這篇文章。
一個(gè)優(yōu)雅的命令行模塊,可以通過 https://github.com/docopt/docopt 進(jìn)行學(xué)習(xí)與使用。
optparse 解析器的命令行選項(xiàng),3.2 版后 optparse 模塊已被棄用并不再繼續(xù)開發(fā);接力棒,轉(zhuǎn)移到了 argparse 模塊。
學(xué)習(xí)如何使用,可以參考:https://docs.python.org/zh-cn/3/library/optparse.html#module-optparse
通過 pip install argparse
對(duì)該庫(kù)進(jìn)行安裝,使用方式也比較簡(jiǎn)單,官方對(duì)其的定義是,命令行選項(xiàng)、參數(shù)和子命令解析器。
學(xué)習(xí)如何使用,可以參考:https://docs.python.org/zh-cn/3/library/argparse.html
Click 是 Flask 的開發(fā)團(tuán)隊(duì) Pallets 的一款開源項(xiàng)目,它是用于快速創(chuàng)建命令行的第三方模塊。
官方地址與使用方式,參考 github:https://github.com/pallets/click
fire 用于從任何 Python 對(duì)象自動(dòng)生成命令行接口,只需對(duì) Fire 進(jìn)行一次調(diào)用,即可將任何 Python 組件轉(zhuǎn)變?yōu)槊钚薪缑妗?/p>
該工具庫(kù)是谷歌開源的。
開源地址:https://github.com/google/python-fire
Typer 是一個(gè)用于構(gòu)建 CLI 應(yīng)用程序的庫(kù)。
文檔: https://typer.tiangolo.com
代碼: https://github.com/tiangolo/typer
基于 argparse
的封裝,允許使用裝飾器的方式定義命令和參數(shù)。
開源地址:https://github.com/hyde/commando
如果你在做深度學(xué)習(xí)相關(guān)方向,尤其經(jīng)常使用 tensorflow,那 FLAGS 是一款必備的命令行工具。
該模塊的使用需要基于 tensorflow 了,故放在最后一趴。
這些優(yōu)質(zhì)的第三方庫(kù),橡皮擦給大家的推薦順序是:fire-> click -> argparse -> **getopt **。
這兩個(gè)項(xiàng)目在 github 上的超高 star,也證明了大家對(duì)其的認(rèn)可。
聯(lián)系客服