【python】argparse 參數(shù)解析

1、模塊介紹
玩過linux的會看到過這種場景:

使用"命令 --help"會把這個命令的用法、選項、說明都給列出來,非常直觀。
在python中,經(jīng)常寫腳本,如果使用到命令行傳參,頭一次你可能知道該傳遞什么參數(shù),時間久了,再次使用這個腳本,怕是代碼要重新讀一遍。如果能和linux一樣,通過--help就能查詢腳本怎么傳參,豈不是很方便了嗎。正好工作中也遇到了這個場景,接觸到了一個python庫:argparse,它可以幫助實現(xiàn)我們想要的效果。
使用argparse模塊可以輕松編寫用戶友好的命令行接口,自動生成幫助和使用手冊,并在用戶傳入無效參數(shù)時報出錯誤信息。
2、模塊安裝
不用安裝,python自帶,我使用的python版本是3.8.6.
3、模塊使用
總共分成了三步調用
3.1 實例化一個ArgumentParser
參數(shù)含義
description: 描述你這個程序功能
3.2 調用add_argument()方法
參數(shù)含義
dest: 屬性名字,就是你在獲取參數(shù)的時候,可以通過這個屬性名字獲取對應的參數(shù)值
type: 類型,比如str, int, dict, list, set等等,規(guī)定你輸入的參數(shù)的類型
help: 幫助說明,你這個參數(shù)含義是啥
choices: 選擇題,你輸入的參數(shù)只能是choices中指定的值,輸入其他值會報錯
nargs: 你這個參數(shù)要輸入幾個,比如你要輸入的參數(shù)是這樣的: --fruit ”apple“ "banana",那nargs=2
??????但是要注意當你在程序中取fruit的值的時候,返回的結果是:
const: 當nargs的值設置為'?'時,在這兒設置const,代碼中取該參數(shù)的值就會取到const的值。傳參的時候你只需要傳入選項,而不用在選項后面跟值。
required: 你的這個參數(shù)是否必須要通過命令行輸入,如果是,設置為True,否則設置為False。
default: 設置默認值,如果你命令行沒有輸入該選項的值,程序中會取默認值
3.3 獲取選項值
通過dest屬性獲取值
這兒附上完整調試代碼:
觀看下效果:

腳本傳參使用:

4、參考文檔
https://docs.python.org/zh-cn/3.8/library/argparse.html

argparse模塊,使用上面這些功能已經(jīng)能解決我工作上的需求了,如果后續(xù)又有其他需求,再查找資料補充。歡迎共同討論。