python中的argparse模塊(參數解析) --和沒有--有什麼區別

引入

在做項目的時候,發現一個問題:

針對下面的這句一直理解不了:

parser.add_argument("--x", help="橫座標", type=int)

這邊帶個--和沒有--到底有什麼區別,各種查找,也沒發現我想要的答案。

後面再一個犄角旮旯的地方發現下面這個博文:

示例代碼

import argparse
parse = argparse.ArgumentParser()
parse.add_argument("a", help="params means")
parse.add_argument("-C", "--gc", default="count")
parse.add_argument("--ga", help="params means ga",dest='simple_value',choices=['A', 'B', 'C', 0])
parse.add_argument("--gb", help="params means gb",action="store_const",const='value-to-store')
args = parse.parse_args()
print args.simple_value,args.gb,args.gc

解釋

### add_argument 說明
不帶'--'的參數
    調用腳本時必須輸入值
    參數輸入的順序與程序中定義的順序一致
'-'的參數
    可不輸入    add_argument("-a")
    類似有'--'的shortname,但程序中的變量名爲定義的參數名
'--'參數
    參數別名: 只能是1個字符,區分大小寫
        add_argument("-shortname","--name", help="params means"),但代碼中不能使用shortname
    dest: 參數在程序中對應的變量名稱 add_argument("a",dest='code_name')
    default: 參數默認值
    help: 參數作用解釋  add_argument("a", help="params means")
    type : 默認string  add_argument("c", type=int)
    action:
    store:默認action模式,存儲值到指定變量。
    store_const:存儲值在參數的const部分指定,多用於實現非布爾的命令行flag。
    store_true / store_false:布爾開關。 store_true.默認爲False,輸入則爲true。 store_flase 相反
    append:存儲值到列表,該參數可以重複使用。
    append_const:存儲值到列表,存儲值在參數的const部分指定。
    count: 統計參數簡寫輸入的個數  add_argument("-c", "--gc", action="count")
    version 輸出版本信息然後退出。
    const:配合action="store_const|append_const"使用,默認值
    choices:輸入值的範圍 add_argument("--gb", choices=['A', 'B', 'C', 0])
    required : 默認False, 若爲 True, 表示必須輸入該參數

很多同學看到這邊可能還是看不懂。沒事,下面我根據參數的情況給幾個demo。

demo1 帶--的參數

import argparse

parser = argparse.ArgumentParser()
parser.add_argument("--x", help="橫座標", type=int)
args = parser.parse_args()
x = args.x
print(x);

# 運行結果

(base) G:\python\2020\untitled\fly>python no.py --x 1
1

(base) G:\python\2020\untitled\fly>python no.py 1
usage: no.py [-h] [--x X]
no.py: error: unrecognized arguments: 1

(base) G:\python\2020\untitled\fly>python no.py
None

demo2 帶-的參數

import argparse

parser = argparse.ArgumentParser()
parser.add_argument("-x", help="橫座標", type=int)
args = parser.parse_args()
x = args.x
print(x);

# 運行結果

(base) G:\python\2020\untitled\fly>python no.py
None

(base) G:\python\2020\untitled\fly>python no.py 1
usage: no.py [-h] [-x X]
no.py: error: unrecognized arguments: 1

(base) G:\python\2020\untitled\fly>python no.py -x 1
1

demo3 不帶-也不帶--的參數

import argparse

parser = argparse.ArgumentParser()
parser.add_argument("x", help="橫座標", type=int)
args = parser.parse_args()
x = args.x
print(x);


# 運行結果
(base) G:\python\2020\untitled\fly>python no.py
usage: no.py [-h] x
no.py: error: the following arguments are required: x

(base) G:\python\2020\untitled\fly>python no.py 1
1

(base) G:\python\2020\untitled\fly>python no.py x 1
usage: no.py [-h] x
no.py: error: argument x: invalid int value: 'x'

 

最近對python的學習有一定的積累,所以承接關於python之類的項目或者系統設計。有興趣的可以私信我,或者加我qq:1702377988

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章