您好,登錄后才能下訂單哦!
這篇文章主要講解了“Python命令行解析器argparse怎么使用”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“Python命令行解析器argparse怎么使用”吧!
argparse 模塊是 Python 內置的一個用于命令項選項與參數解析的模塊,argparse 模塊可以讓人輕松編寫用戶友好的命令行接口。
argparse能夠幫助程序員為模型定義參數、通過sys.argv 解析命令行參數。模塊還會自動生成幫助和使用手冊,并在用戶給程序傳入無效參數時報出錯誤信息。
(1)創建一個命令行解析器對象——創建 ArgumentParser() 對象
(2)給解析器添加命令行參數 ——調用add_argument() 方法添加參數
(3)解析命令行的參數 ——使用 parse_args() 解析添加的參數
# 導入庫 import argparse # 1. 定義命令行解析器對象 parser = argparse.ArgumentParser(description='test') # 2. 添加命令行參數 parser.add_argument('--sparse', action='store_true', default=False, help='GAT with sparse version or not.') parser.add_argument('--seed', type=int, default=72, help='Random seed.') parser.add_argument('--epochs', type=int, default=10000, help='Number of epochs to train.') # 3. 從命令行中結構化解析參數 args = parser.parse_args() print(args.sparse) print(args.seed) print(args.epochs)
使用 argparse 的第一步是創建一個 ArgumentParser 對象:
parser = argparse.ArgumentParser(description='test')
ArgumentParser 實例化對象將包含把命令行解析成 Python 數據類型所需的全部信息,
(1)描述description
大多數對 ArgumentParser 構造方法的調用都會使用 description= 關鍵字參數。
這個參數簡要描述這個程度做什么以及怎么做。
在幫助消息中,這個描述會顯示在命令行用法字符串和各種參數的幫助消息之間。
(1)添加命令行參數的案例
給一個 ArgumentParser 添加程序參數信息,是通過調用 add_argument() 方法完成的。
通常,這些調用指定 ArgumentParser 如何獲取命令行字符串并將其轉換為對象。
這些信息在 parse_args() 調用時被存儲在ArgumentParser實例化對象中,以供后續使用。
例如:
parser.add_argument('--sparse', action='store_true', default=False, help='GAT with sparse version or not.') parser.add_argument('--seed', type=int, default=72, help='Random seed.') parser.add_argument('--epochs', type=int, default=10000, help='Number of epochs to train.')
add_argument() 方法定義如何解析命令行參數的呢?
(2)add_argument() 方法定義如何解析命令行參數
ArgumentParser.add_argument(name or flags...[, action][, nargs][, const][, default][, type][,
choices][, required][, help][, metavar][, dest])
每個參數解釋如下:
name or flags - 普通參數或flag參數選項參數的名稱或標簽,例如 foo 或者 -f, --foo。Flag參數不需要指定參數值,只需要帶有參數名即可。
action - 命令行遇到flags參數時的動作。有兩個常見的動作,store_true:設定flag參數為true;store_false:設定flag參數為False。
nargs - 應該讀取的命令行參數個數,可以是具體的數字,或者是?號,當不指定值時對于 Positional argument 使用 default,對于 Optional argument 使用 const;或者是 * 號,表示 0 或多個參數;或者是 + 號表示 1 或多個參數。
default - 不指定參數時該參數的默認值。
type - 命令行參數應該被轉換成的數據類型。
required - 是否為必選參數或可選參數。
help - 參數的幫助信息,當指定為 argparse.SUPPRESS 時表示不顯示該參數的幫助信息.
metavar - 在 usage 說明中的參數名稱,對于必選參數,默認就是參數名稱,對于可選參數默認是全大寫的參數名稱。
dest - 解析后的參數名稱,默認情況下,對于可選參數選取最長的名稱,中劃線轉換為下劃線.
choices - 參數可允許的值的一個容器。
const - action 和 nargs 所需要的常量值。
store_const,表示賦值為const;
append,將遇到的值存儲成列表,也就是如果參數重復則會保存多個值;
append_const,將參數規范中定義的一個值保存到一個列表;
count,存儲遇到的次數;此外,也可以繼承 argparse.Action 自定義參數解析;
ArgumentParser對象通過 parse_args() 方法解析命令行的參數。
它將檢查命令行中每個參數,轉換為適當的數據類型,然后調用相應的操作,并把參數結構化后存放在對象args中。
args = parser.parse_args()
在腳本中,通常 parse_args() 會被不帶參數調用,而 ArgumentParser 將自動從 sys.argv 中確定命令行參數。
xxx --sparse --seed 0 --epochs 1000
其中,--seed和--epochs為普通參數,需要指定具體的數據。
--sparse為flag參數,不需要指定具體的值,指定該參數名后的具體數值,取決于其action的定義。
如果action = store_true時,--sparse表明參數值設定為true
如果action = store_false時,--sparse表明參數值設定為false
print(args.sparse) print(args.seed) print(args.epochs)
感謝各位的閱讀,以上就是“Python命令行解析器argparse怎么使用”的內容了,經過本文的學習后,相信大家對Python命令行解析器argparse怎么使用這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。