通過命令行運行Python腳本時,可以通過ArgumentParser
來高效地接受並解析命令行參數。
流程
新建一個ArgumentParser
類對象,然后來添加若干個參數選項,最后通過parse_args()
方法解析並獲得命令行傳來的參數。
import argparser
parser = argparser.ArgumentParser()
# 此處省略添加若干個參數選項的詳細步驟
# ...
parser.parse_args()
最后通過parser.<argument_name>
來獲取傳遞過來的參數。
添加參數選項
使用add_argument()
來添加參數選項
# 添加位置參數
parser.add_argument("echo", help="echo the string you use here")
parser.add_argument("square", help="display ...", type=int)
# 添加可選參數
parser.add_argument("-v", "--verbosity", help="...", type=int, choices=[0, 1, 2], default=0)
對以上代碼做出如下解釋:
- 在使用
add_argument
來添加參數選項的時候,首先要指定參數的名字argument_name
這個屬性,可選參數有長短兩個名稱; - 在命令行指定位置參數時直接傳值,指定可選參數時,先注明長短名稱,然后在后面接值;
help
提示參數的作用,type
規定了參數的取值類型,choices
以列表的形式規定了值域,default
規定了參數的默認值
參數選項組
使用add_mutually_exclusive_group()
來添加相互對立的參數選項組
一個對立的可選參數組在指定參數時,只能任選其一或都不選
# 導入模塊和新建ArgumentParser類的過程省略
group = parser.add_mutually_exclusive_group()
group.add_argument("-d", "--down")
group.add_argument("-t", "--top")
# ...
最后獲取參數時,仍舊是通過parser.down
和parser.top
.
額外的小插曲
對於可選參數還有一個action
屬性,常見的有store_true
和count
兩種
# 指定-v可選參數時,-v等於True,否則為False
parser.add_argument("-v", action="store_true")
# 指定-v可選參數時,-v等於v出現的次數
parser.add_argument("-v", action="count")