python中argparse模块
參考官方文檔https://docs.python.org/zh-cn/3/library/argparse.html#nargs
python中參數解釋器,使用流程:
import argparse parser = argparse.ArgumentParser() ## 新建參數解釋器對象 parser.add_argument('-v') ## 添加參數 args = parser.parse_args(['-v', '3'])### 參數賦值,也可以通過終端賦值 ''' python test.py -v '''1. argparse.ArgumentParser()
class argparse.ArgumentParser(prog=None, usage=None, description=None, epilog=None, parents=[], formatter_class=argparse.HelpFormatter, prefix_chars='-', fromfile_prefix_chars=None, argument_default=None, conflict_handler='error', add_help=True, allow_abbrev=True, exit_on_error=True)
參數很多,一般都選默認。有時會設置usage–描述程序的用法.
2. parser.add_argument()
ArgumentParser.add_argument(name or flags...[, action][, nargs][, const][, default][, type][, choices][, required][, help][, metavar][, dest])
定義單個的命令行參數應當如何解析。每個形參都在下面有它自己更多的描述,長話短說有:
name or flags - 一個命名或者一個選項字符串的列表,例如 foo 或 -f, --foo。
action - 當參數在命令行中出現時使用的動作基本類型。
nargs - 命令行參數應當消耗的數目。
const - 被一些 action 和 nargs 選擇所需求的常數。
default - 當參數未在命令行中出現并且也不存在于命名空間對象時所產生的值。默認值
type - 命令行參數應當被轉換成的類型。
choices - 可用的參數的容器。
required - 此命令行選項是否可省略 (僅選項可用)。
help - 一個此選項作用的簡單描述。
metavar - 在使用方法消息中使用的參數值示例。
dest - 被添加到 parse_args() 所返回對象上的屬性名。
2.1 name or flags 參數名稱
參數可以是位置參數,也可以是可選參數。parser.add_argument()調用時,根據名稱前有無中劃線‘-’,確定參數是位置參數還是可選參數。
- 可選參數
parser.add_argument('-f', '--foo') - 位置參數可以這么創建:
parser.add_argument('bar')
當 parse_args() 被調用,選項會以 - 前綴識別,剩下的參數則會被假定為位置參數。位置參數必須被賦值,可選參數可根據情況不賦值。
2.2 action 動作類型
可選值為: store, store_const,store_true, store_false
- store 默認值,設置的值都會保存
- store_const存儲被 const 命名參數指定的值
foo未設置值,但是在參數列表中加了--foo,則foo=42,如果調用的時候,不傳參數列表,foo=None。
這點與parser.add_argument('--foo', default=42)不同,此時,傳個空的參數列表 給foo,foo的值為42。
如果傳參數卻不賦值,會報錯
- store_true 和store_false 是store_const的特殊值,分別作為存儲True 和 False
foo的action=store_true,傳參列表中加了--foo,則foo=True
bar的action=store_false,傳參列表中加了--bar,則bar=False
baz的action=store_false,傳參列表中沒加了--baz,則bar取與他存儲值相反的值False
2.3 nargs 參數個數
- N - 表示前面的參數接收N個參數
- ? - 接收0或1個參數
- * - 接收0或多個參數
- + - 接收1或多個參數,未傳參數時,報錯
2.3.1 ?配合default和const使用
nargs=?的變量,賦值的參數可以有0或1個
2.3.1 *
2.4 type 類型
type 關鍵字允許執行任何必要的類型檢查和類型轉換
foo的類型是int,bar的類型是str.兩個參數傳的值相同,但因為type類型不同,收到的參數值的類型不同
2.5 choice
從choice可取值的范圍內設置一個值,否則會報錯。
配合type,檢查參數類型。
任何內部的 - 字符都將被轉換為 _ 字符以確保字符串是有效的屬性名稱
與50位技術專家面對面20年技術見證,附贈技術全景圖總結
以上是生活随笔為你收集整理的python中argparse模块的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: BCE loss和 CE理解
- 下一篇: 安装numpy,setuptools的时