argparse命令列解析包

2021-09-08 16:35:17 字數 2059 閱讀 4415

是python的乙個命令列解析包,非常編寫可讀性非常好的程式,一般有3個步驟

定位引數傳值的方法--直接用 「引數名」 或者 『引數名』 (雙引號或單引號均可)

import argparse

parser = argparse.argumentparser()

parser.add_argument('integer', type=int, help='display an integer')

args = parser.parse_args()

print args.integer

如圖例子需要輸入乙個整數賦值給integer,

1⃣️沒有按照規定型別賦值;

2⃣️賦給未定義變數;

3⃣️用定位引數法時,如果有多個引數,只賦值部分報錯;----必須對全部引數進行賦值,哪怕沒有呼叫;

以上情況任何一種,都會報錯

可選引數傳值---兩種表達方式

一種是通過乙個-來指定的短引數,如-h

一種是通過--來指定的長引數,如--help;

這兩種方式可以同存,也可以只存在乙個

import argparse

parser = argparse.argumentparser()

parser.add_argument("--integer", type=int, help='display an integer')

parser.add_argument('-float', type=float, help='display an integer')

args = parser.parse_args()

print (args.integer)

print(args.float)

測試

>> python3 02.py 3 2.5

usage: 02.py [-h] [--integer integer] [-float float]

02.py: error: unrecognized arguments: 3 2.5

>>python3 02.py --integer 3 2.5

usage: 02.py [-h] [--integer integer] [-float float]

02.py: error: unrecognized arguments: 2.5

>> python3 02.py --integer 3 -float 2.5

32.5

說明:

1⃣️--宣告和--賦值要一一對應

2⃣️--和-只是形式,並沒有對引數名的長度有非常嚴格的要求

3⃣️用可選引數法宣告多個引數時,可以只對部分進行賦值,並不會報錯;前提是沒有呼叫未賦值的引數

import argparse

parser = argparse.argumentparser()

parser.add_argument("--integer","-int", type=int, help='display an integer')

parser.add_argument('-float',"-f", type=float, help='display an integer')

args = parser.parse_args()

print (args.integer)

print(args.float)

同乙個變數給了兩個名字,呼叫時使用較長名字的那乙個,否則會報錯;但是在引數賦值時,傳給哪乙個都可以。

>>> python3 02.py --int 3 -f 2.5

traceback (most recent call last):

file "02.py", line 8, in print (args.int)

attributeerror: 'namespace' object has no attribute 'int'

參考:

argparse 命令列引數解析包

import argparse parser argparse.argumentparser formatter class argparse.helpformatter parser.description 喂我兩個數字,我就吐出他們的積 parser.add argument a parta h...

python 命令列解析argparse

python中的命令列解析最簡單最原始的方法是使用sys.argv來實現,更高階的可以使用argparse這個模組。argparse從python 2.7開始被加入到標準庫中,所以如果你的python版本還在2.7以下,那麼需要先手動安裝。import argparse parser argpars...

argparse 命令列解析模組初級指南

我在學習這個模組時,參考了這個篇文章,為了方便日後覆盤,所以自己做乙個總結。官方文件 首先,要明白argparse的作用 它是命令列解析模組,目的是在不修改 的前提下,能夠修改程式的引數,提高 的通用性。接著就是說明argparse模組的使用,第一步 恢復內容結束 第一步 匯入argparse im...