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