網(wǎng)站首頁(yè) 編程語(yǔ)言 正文
argparse 是 python 的一個(gè)命令行解析包,可根據(jù)需要編寫(xiě)高可讀性的程序。
網(wǎng)上的許多教程較為冗長(zhǎng)和散漫,沒(méi)有達(dá)到精練好掌握的目的,本文針對(duì)項(xiàng)目中對(duì) argparse 的用法,用實(shí)例對(duì)各個(gè)參數(shù)進(jìn)行講解,力求達(dá)到讓讀者秒懂的目的。
先上代碼
import argparse
if __name__ == '__main__':
# 創(chuàng)建命令行解析器句柄,并自定義描述信息
parser = argparse.ArgumentParser(description='test the argparse package')
# 定義必選參數(shù) positionArg
parser.add_argument('positionArg')
# 定義可選參數(shù)verbosity1
parser.add_argument('--verbosity1', '-v1', help='test the optional arguments')
# 定義可選參數(shù)verbosity2,并通過(guò)設(shè)定store_true表示該選項(xiàng)不需要接收參數(shù),若不設(shè)action,則默認(rèn)是需要接收參數(shù)的,否則報(bào)錯(cuò)
parser.add_argument('--verbosity2', '-v2', action='store_true', help='test the action arg')
# 指定參數(shù)類型(默認(rèn)是 str)
parser.add_argument('x', type=int, help='test the type')
# 設(shè)置參數(shù)的可選范圍
parser.add_argument('--verbosity3', '-v3', type=str, choices=['one', 'two', 'three', 'four'], help='test choices')
# 設(shè)置參數(shù)默認(rèn)值
parser.add_argument('--verbosity4', '-v4', type=str, choices=['one', 'two', 'three'], default=1, help='test default value')
args = parser.parse_args() # 返回一個(gè)命名空間
print(args)
params = vars(args) # 返回 args 的屬性和屬性值的字典
for k, v in params.items():
print(k, v)
代碼示例中寫(xiě)上了詳細(xì)的注釋,觀看注釋也可了解各大概。
下面針對(duì)一些特殊點(diǎn)再作詳述
action='store_true'
表示該選項(xiàng)不需要接收參數(shù),直接設(shè)定該參數(shù)為 true,當(dāng)然,如果不指定 -v2, 則該參數(shù)就是 false。
但如果把 action=’store_true’ 去掉,就必須給 -v2 指定一個(gè)值。
程序用法幫助
比如該程序命名為 testArg.py,則可在命令行執(zhí)行如下語(yǔ)句:
python3 testArg.py -h
運(yùn)行得到函數(shù)的用法幫助文檔:
完整的命令行參數(shù)執(zhí)行命令和效果如下:
當(dāng)然,參數(shù)的值也可寫(xiě)成賦值形式,如下所示(等同于上圖中的命令):
python3 testArg.py hehe -v1=verb1 --verbosity2 1 -v3=one -v4=two
中間打印的 Namespace 為參數(shù)解析返回的命名空間。
如此,結(jié)合實(shí)例,非常簡(jiǎn)潔易懂,分享之。當(dāng)然還有一些其他的用法,此處只列出了一些最常用的用法,在使用中如有需要,可自行查閱文檔。
原文鏈接:https://blog.csdn.net/huangfei711/article/details/80325946
相關(guān)推薦
- 2022-06-22 為Visual?Studio2019添加Git組件_實(shí)用技巧
- 2023-07-02 python中編寫(xiě)config文件并及時(shí)更新的方法_python
- 2022-04-04 程序員新人入職第一天的基本操作(程序員入職第一天干啥)
- 2022-06-17 Go語(yǔ)言使用Request,Response處理web頁(yè)面請(qǐng)求_Golang
- 2022-04-18 python全面解析接口返回?cái)?shù)據(jù)_python
- 2022-11-09 ORACLE中常用的幾種正則表達(dá)式小結(jié)_oracle
- 2022-07-29 詳解Go語(yǔ)言中配置文件使用與日志配置_Golang
- 2023-08-01 ref 和 reactive 函數(shù)標(biāo)注類型解析
- 最近更新
-
- window11 系統(tǒng)安裝 yarn
- 超詳細(xì)win安裝深度學(xué)習(xí)環(huán)境2025年最新版(
- Linux 中運(yùn)行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲(chǔ)小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎(chǔ)操作-- 運(yùn)算符,流程控制 Flo
- 1. Int 和Integer 的區(qū)別,Jav
- spring @retryable不生效的一種
- Spring Security之認(rèn)證信息的處理
- Spring Security之認(rèn)證過(guò)濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權(quán)
- redisson分布式鎖中waittime的設(shè)
- maven:解決release錯(cuò)誤:Artif
- restTemplate使用總結(jié)
- Spring Security之安全異常處理
- MybatisPlus優(yōu)雅實(shí)現(xiàn)加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務(wù)發(fā)現(xiàn)-Nac
- Spring Security之基于HttpR
- Redis 底層數(shù)據(jù)結(jié)構(gòu)-簡(jiǎn)單動(dòng)態(tài)字符串(SD
- arthas操作spring被代理目標(biāo)對(duì)象命令
- Spring中的單例模式應(yīng)用詳解
- 聊聊消息隊(duì)列,發(fā)送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠(yuǎn)程分支