參考了以下鏈結的內容,我簡單地搬運了一些。argparse 是python自帶的命令列引數解析包,可以用來方便地讀取命令列引數,當你的**需要頻繁地修改引數的時候,使用這個工具可以將引數和**分離開來,讓你的**更簡潔,適用範圍更廣。先來乙個基本的框架,便於熟悉整個使用過程
import argparse
defmain()
: parser=argparse.argumentparser(description=
"demo of argparse"
) parser.add_argument(
'-n'
,'--name'
,default=
'jack'
,type
=str,
help
='argument:name'
) parser.add_argument(
'-y'
,'--year'
, default=20,
type
=int
,help
='argument:age'
) args = parser.parse_args(
)print
(args)
name = args.name
year = args.year
print
("hello,my name is {} and i'm {} years old"
.format
(name,year)
)if __name__ ==
'__main__'
: main(
)
輸出結果是
namespace(name=
'jack'
, year=20)
hello,my name is jack and i'm 20 years old
在上面的**中,我們import了argparse這個包,然後用包中的argumentparser類生成了乙個parser物件(引數解析器),其中的description描述這個引數解析器是幹什麼的,當我們在命令列顯示幫助資訊的時候會看到description描述的資訊。
接著我們通過物件的add_argument函式來增加引數。其中』-n』,』–name』表示同乙個引數,
-n是為了書寫方便,實際最後也是傳入到name當中。default引數表示我們在執行命令時若沒有提供引數,程式會將此值當做引數值。
當執行命令python arg.py -h可以檢視幫助資訊
當然,我們可以在執行命令的時候傳入引數。
例如:python arg.py -n rose -y 18 或者 python arg.py --name rose --year 18
輸出結果都是一樣的
add_argument函式常用的引數如下,可參考鏈結
2. default:沒有設定值情況下的預設引數如同上例中展示的,default表示命令行沒有設定該引數的時候,程式中用什麼值來代替。
3. required: 表示這個引數是否一定需要設定
如果設定了required=true,則在實際執行的時候不設定該引數將報錯:
...
parser.add_argument(
'-name'
, required=
true).
..
則執行下面的命令會報錯:
4. type:引數型別
預設的引數型別是str型別,如果你的程式需要乙個整數或者布林型引數,你需要設定type=int或type=bool
5. choices:引數值只能從幾個選項裡面選擇
如下面的**:
import argparse
defget_parser()
: parser = argparse.argumentparser(
description=
'choices demo'
) parser.add_argument(
'-arch'
, required=
true
, choices=
['alexnet'
,'vgg'])
return parser
if __name__ ==
'__main__'
: parser = get_parser(
) args = parser.parse_args(
)print
('the arch of cnn is '
.format
(args.arch)
)
如果像下面這樣執行會報錯
$ python choices.py -arch resnet
usage: choices.py [
-h]-arch
choices.py: error: argument -arch: invalid choice:
'resnet'
(choose from
'alexnet'
,'vgg'
)
因為我們所給的-arch引數resnet不在備選的choices之中,所以會報錯
6. help:指定引數的說明資訊
在現實幫助資訊的時候,help引數的值可以給使用工具的人提供該引數是用來設定什麼的說明,對於大型的專案,help引數和很有必要的,不然使用者不太明白每個引數的含義,增大了使用難度。
Python中的argparse用法
2 正文 3 結語 1 argparse基本用法,2 argparse簡要用法總結,最近在看python 的時候看到了別人使用 import argparseimport argparse defmain parser argparse.argumentparser demo of argparse...
Python 中argparse模組的使用
閱讀原文 python解析命令列讀取引數有兩種方式 sys.argv和argparse 如果指令碼很簡單或臨時使用,沒有多個複雜的引數選項,可以直接利用sys.argv將指令碼後的引數依次讀取 讀進來的預設是字串格式 import sys print 輸入的引數為 s sys.argv 1 命令列執...
Python 中argparse模組的使用
python解析命令列讀取引數有兩種方式 sys.ar 和argparse 如果指令碼很簡單或臨時使用,沒有多個複雜的引數選項,可以直接利用sys.ar 將指令碼後的引數依次讀取 讀進來的預設是字串格式 import sys print 輸入的引數為 s sys.ar 1 命令列執行效果 pytho...