python中argparse庫的基本用法

2021-09-25 03:44:50 字數 3076 閱讀 8058

參考了以下鏈結的內容,我簡單地搬運了一些。

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...