網站首頁 編程語言 正文
argparse是Python的一個標準模塊,用于解析命令行參數,即解析sys.argv中定義的參數。實現在:傳送門
argparse模塊還會自動生成幫助和使用信息,即在最后加-h或--help。當用戶輸入的參數無效時,會觸發error,并給出出錯原因。
python test_argparse.py -h
python test_argparse.py --help
使用argparse的步驟:
1.創建解析器:argparse.ArgumentParser(),ArgumentParser是個class,構造它時有很多參數可以指定,若不指定這些參數都使用默認值,如description=None:此python程序功能的描述;add_help=True:添加-h/--help選項
parser = argparse.ArgumentParser(description="test argparse's use", add_help=True)
2.添加參數:parser.add_argument(*args, **kwargs):*args允許函數接受任意數量的位置參數(positional arguments),**kwargs允許函數接受任意數量的關鍵字參數。Python不允許位置參數跟在關鍵字參數之后。
(1).name or flags:一個名字,位置參數(positional arguments),不帶有"-"或"--",如foo;一個可選字符串的列表,如-f, --foo。當parse_args()被調用時,可選參數會以"-"前綴識別,剩下的參數則會被假定為位置參數。
parser.add_argument("integers", metavar="N", type=int, nargs="+", help="an integer for the accumulator") # positional argument
parser.add_argument("--sum", dest="accumulate", action="store_const", const=sum, default=max, help="sum the integers(default: find the max)") # optional argument
args = parser.parse_args()
print(args.accumulate(args.integers)) # print either the sum or the max of the command-line integers
(2).action:ArgumentParser對象將命令行參數與action相關聯。這些action可以做與它們相關聯的命令行參數的任何事,盡管大多數action只是簡單的向parse_args()返回的對象上添加一個屬性。action關鍵字參數指定應如何處理命令行參數。默認的action是"store",存儲參數的值。
(3).nargs:此關鍵字參數將不同數量的命令行參數與單個操作相關聯。
"?":如果不存在命令行參數,則會使用default值;還有一種情況,"-"選項字符串存在,但后面沒有跟著命令行參數,則會使用const值。
"*":所有命令行參數都收集到一個列表中。
"+":與"*"類似,但至少存在一個命令行參數,否則會產生錯誤消息。
parser.add_argument('--foo', nargs='?', const='c', default='d')
args = parser.parse_args()
print(args.foo) # print 'c' or 'd' or command-line input
(4).const:此關鍵字參數用于保存不是從命令行中讀取但被各種ArgumentParser操作所需的常量值。對'store_const'和'append_const' action,const關鍵字參數必須給出;對其它action,默認為None。
(5).default:此關鍵字參數用于在命令行參數不存在應使用的值,默認值為None。
(6).type:此關鍵字參數允許執行任何必要的類型檢查和類型轉換。
(7).choices:某些命令行參數應當從一組受限值中選擇,這些可以通過將容器對象作為choices關鍵字參數傳遞給add_argument()來處理。當執行命令行解析時,參數值將被檢查,如果參數不是可接受的值之一將觸發錯誤消息。
parser.add_argument('addr', type=str, choices=['csdn', 'github'])
args = parser.parse_args()
print("addr:", args.addr)
(8).required:通常,argparse模塊假定"-f"和"--bar"等標志表示可選參數,在命令行中始終可以省略這些參數。要讓一個選項成為必需的,則可以將required關鍵字參數指定為True。
(9).help:包含參數簡短描述的字符串。通常在命令行中使用-h或--help時,這些help描述將與每個參數一起顯示。
(10).metavar:當ArgumentParser生成幫助消息時,它需要某種方式來引用每個預期的參數。默認情況下,ArgumentParser對象使用dest值作為每個對象的"name"。默認情況下,對于位置參數action,直接使用dest值,對于可選參數action,dest值是大寫的。可以使用metavar來指定一個替代名稱。
parser.add_argument('--foo')
parser.add_argument('--bar', metavar='XXX')
args = parser.parse_args()
(11).dest:大多數ArgumentParser操作都會添加一些值作為parse_args()返回的對象的一個屬性。此屬性的名稱由add_argument()的dest關鍵字參數確定。
3.解析參數:parser.parse_args(),將參數字符串轉換為對象并將其設為命名空間的屬性,返回帶有成員的命名空間。
更多介紹參考:傳送門
GitHub
原文鏈接:https://blog.csdn.net/fengbingchun/article/details/126909875
相關推薦
- 2022-06-24 使用Python獲取字典鍵對應值的兩種方法_python
- 2022-11-15 簡單實現Android應用的啟動頁_Android
- 2023-03-25 Excel?VBA指定條件刪除整行整列的實現_vbs
- 2023-04-06 python?numpy.linalg.norm函數的使用及說明_python
- 2023-11-22 Linux的vim命令如何使用
- 2022-01-10 解決遮罩下方元素禁止滾動
- 2022-06-30 opencvsharp瑕疵檢測的實現示例_C#教程
- 2022-11-03 C#如何給新建的winform程序添加資源文件夾Resources_C#教程
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支