python argparse命令行參數解析(推薦)
argparse是python用於解析命令行參數和選項的標準模塊。
很多時候,需要用到解析命令行參數的程序,目的是在終端窗口輸入訓練的參數和選項。
argparse 模塊可以讓人輕松編寫用戶友好的命令行接口。
程序定義它需要的參數,然後 argparse 將弄清如何從 sys.argv 解析出那些參數。 argparse 模塊還會自動生成幫助和使用手冊,並在用戶給程序傳入無效參數時報出錯誤信息。
test.py
# -*- coding: utf-8 -*- import argparse # (1) 聲明一個parser對象,該對象包含將命令行解析成 Python 數據類型所需的全部信息。 ap = argparse.ArgumentParser(description='Process some integers.') # (2) 添加參數 ap.add_argument("first") # 位置參數,這裡表示第一個出現的參數賦值給first ap.add_argument("--digit", type=int, help="輸入數字") # 聲明一個int類型參數 ap.add_argument("--name", help="名字", default="dog") # 同上,default 表示默認值 # (3) 讀取命令行參數 args = ap.parse_args() # (4) 調用這些參數 print(args.first) print(args.digit) print("name = {}".format(args.name))
調用
python test.py position_arg --name qwe
ArgumentParser對象
(1)prog – 程序的名稱(默認: sys.argv[0])
(2)usage – 描述程序用途的字符串(默認值:從添加到解析器的參數生成)
(3)description – 在參數幫助文檔之後顯示的文本 (默認值:無)
(4)epilog – 在參數幫助文檔之後顯示的文本(默認值:無)
(5)parents – 一個 ap對象的列表,它們的參數也應包含在內
(6)formatter_class – 用於自定義幫助文檔輸出格式的類
(7)prefix_chars – 可選參數的前綴字符集合(默認值:’-‘)
(8)fromfile_prefix_chars – 當需要從文件中讀取其他參數時,用於標識文件名的前綴字符集合(默認值:None)
(8)argument_default – 參數的全局默認值(默認值: None)
(9)conflict_handler – 解決沖突選項的策略(通常是不必要的)
(10)add_help – 為解析器添加一個 -h/–help 選項(默認值: True)
(11)allow_abbrev – 如果縮寫是無歧義的,則允許縮寫長選項 (默認值:True)
add_argument()方法
(1)name or flags – 一個命名或者一個選項字符串的列表。(例如 foo 或 -f, –foo)
(2)action – 表示該選項要執行的操作
(3)default – 默認值
(4)dest – 用來指定參數的位置,被添加到 parse_args() 所返回對象上的屬性名。
(5)type – 為參數類型。(例如int)
(6)choices – 用來選擇輸入參數的范圍。(例如choice = [1, 5, 10])
(7)help – 用來描述這個選項的作用
(8)nargs – 命令行參數應當消耗的數目。
(9)const – 被一些 action 和 nargs 選擇所需求的常數。
(10)required – 此命令行選項是否可省略 (僅選項可用)。
(11)metavar – 在使用方法消息中使用的參數值示例。
import argparse import logging """ " File Description: " dump model && deploy " " Created by zz on 2021/6/22. " Mail: [email protected] """ logging.basicConfig(level=logging.DEBUG) def parse_args(): ap = argparse.ArgumentParser(prog="deploy tool", description='dump or calib model && deploy') ap.add_argument("deploy_path", type=str, help="deploy base path") ap.add_argument("exp_name", type=str, help="train exp name") subparser = ap.add_subparsers(title="model deploy subparser", dest="mode") # subparser model_deploy_parser = subparser.add_parser("model", help="model deploy") model_deploy_parser.add_argument("--default", default=False, type=bool, help="whether that's default model") calib_deploy_parser = subparser.add_parser("calib", help="offline calib deploy") calib_deploy_parser.add_argument("--input", required=True, type=str, help="model offline calib file") args = ap.parse_args() return args # global args args = parse_args() mode = args.mode deploy_path = args.deploy_path exp_name = args.exp_name def main(): if mode == "model": _deploy_model() elif mode == "calib": _deploy_calib() else: logging.error( "Mode error") if __name__ == '__main__': main()
到此這篇關於python argparse命令行參數解析的文章就介紹到這瞭,更多相關python argparse命令行參數內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!
推薦閱讀:
- python argparse模塊傳參用法實例
- python argparse的使用步驟(全網最全)
- Python命令行解析器argparse詳解
- Python詳解argparse參數模塊之命令行參數
- Python argparse 解析命令行參數模塊詳情