網站首頁 編程語言 正文
argparse?是python自帶的命令行參數解析包,可以用來方便地讀取命令行參數。
一、傳入一個參數
import argparse
# 創建一個命令行參數解析器
parser = argparse.ArgumentParser(description='命令行中傳入一個數字')
# 往解析器里面添加參數
parser.add_argument('integer', type=str, help='傳入的數字')
# 得到命令行傳入的參數
args = parser.parse_args()
print(args.integer)
二、傳入多個參數
import argparse
# 創建一個命令行參數解析器
parser = argparse.ArgumentParser(description='命令行中傳入一個數字')
# 往解析器里面添加參數
parser.add_argument('integer', type=str, nargs='+', help='傳入的數字')
# 得到命令行傳入的參數
args = parser.parse_args()
print(args.integer) # 以列表形式返回
注:
- nargs='+': 傳入一個或多個參數
- nargs='*': 傳入零個或多個參數
- nargs='?': 傳入零個或一個參數
三、改變數據類型
# 可通過更改type參數修改數據類型
parser.add_argument('integer', type=str, nargs='+', help='傳入的數字')
四、可選參數(關鍵字參數)
注:參數前面加雙橫杠"- -"表示這個參數是可選參數,即在命令行中可以以鍵值得形式指定,順序可以打亂。
import argparse
parser = argparse.ArgumentParser(description='姓名')
parser.add_argument('--family', type=str, help='姓')
parser.add_argument('--name', type=str, help='名')
args = parser.parse_args()
#打印姓名
print(args.family+args.name)
命令行命令:
python XXX.py --family 張 --name 三 or
python XXX.py --name 三 --family 張
五、參數默認值
通過default指定默認值。
parser.add_argument('--family', default='李', type=str, help='姓')
parser.add_argument('--name', type=str, help='名')
六、參數解析
parse_args()只能解析已知參數,parse_known_args()兼容未知參數并返回。
import argparse
parser = argparse.ArgumentParser(description='姓名')
parser.add_argument('--family', type=str,help='姓')
parser.add_argument('--name', type=str,help='名')
args = parser.parse_args()
# args, dynamic_args = parser.parse_known_args()
print(args)
print(dynamic_args)
命令行示例:
python XXX.py --family 張 --name 三 --test hello
結果:
args = parser.parse_args() # 報錯, error: unrecognized arguments: --test 5
args, dynamic_args = parser.parse_known_args() # 成功返回
補充:python中的argparse基本用法
1、argparse是一個python模塊,用途是:命令行選項、參數和子命令的解釋。
2、使用步驟:
- 導入argparse模塊,并創建解釋器
- 添加所需參數
- 解析參數
3、用法示例:
import argparse
# 1.創建解釋器
parser = argparse.ArgumentParser(description="可寫可不寫,只是在命令行參數出現錯誤的時候,隨著錯誤信息打印出來。")
# 2.添加需要的參數
parser.add_argument('-gf', '--girlfriend', choices=['jingjing', 'lihuan'])
# 參數解釋
# -gf 代表短選項,在命令行輸入-gf和--girlfriend的效果是一樣的,作用是簡化參數輸入
#--girlfriend 代表完整的參數名稱,可以盡量做到讓人見名知意,需要注意的是如果想通過解析后的參數取出該值,必須使用帶--的名稱
# choices 代表輸入參數的只能是這個choices里面的內容,其他內容則會保錯
parser.add_argument('--house', type=int, default=0)
# 參數解釋
# --house 代表參數名稱
# type 代表輸入的參數類型,從命令行輸入的參數,默認是字符串類型
# default 代表如果該參數不輸入,則會默認使用該值
parser.add_argument('food')
# 參數解釋
# 該種方式則要求必須輸入該參數
# 輸入該參數不需要指定參數名稱,指定反而報錯,解釋器會自動將輸入的參數賦值給food
# 3.進行參數解析
args = parser.parse_args()
print('------args---------',args)
print('-------gf-------', args.girlfriend)
4、命令行運行方式
假設上述文件的名字是gf.py
在命令行運行時,則有以下幾種情況:
- python gf.py potato ,這種方式會將potato賦值給food
- python gf.py -gf jingjing tomato,該種方式會將jingjing賦值給girlfriend,tomato賦值給food
- python gf.py --house 2 chicken,該種方式會將house賦值為2,food賦值為chicken
下面為以上三種情況的具體運行時截圖:
a.
b.
c.
學會了以上的幾種方式,argparse模塊的基本用法也就掌握了。
原文鏈接:https://www.cnblogs.com/pingwen/p/17071860.html
相關推薦
- 2023-01-10 阿里云服務器?jdk1.8?安裝配置教程_服務器其它
- 2022-06-19 C#?多線程中經常訪問同一資源可能造成哪些問題_C#教程
- 2022-07-18 RabbitMQ隊列阻塞該如何處理
- 2022-05-25 kubectl中get命令及使用示例總結_云和虛擬化
- 2022-07-12 ERROR:ORA-12543: TNS:destination host unreachable
- 2022-03-29 python中format函數與round函數的區別_python
- 2023-01-30 delphi?判斷字符串是否包含漢字,正則版與非正則版實現_Delphi
- 2023-02-23 淺談Go語言的高效編碼細節_Golang
- 最近更新
-
- 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同步修改后的遠程分支