python argparse命令行參數(shù)解析(推薦)
argparse是python用于解析命令行參數(shù)和選項(xiàng)的標(biāo)準(zhǔn)模塊。很多時(shí)候,需要用到解析命令行參數(shù)的程序,目的是在終端窗口輸入訓(xùn)練的參數(shù)和選項(xiàng)。argparse 模塊可以讓人輕松編寫用戶友好的命令行接口。程序定義它需要的參數(shù),然后 argparse 將弄清如何從 sys.argv 解析出那些參數(shù)。 argparse 模塊還會自動(dòng)生成幫助和使用手冊,并在用戶給程序傳入無效參數(shù)時(shí)報(bào)出錯(cuò)誤信息。
test.py
# -*- coding: utf-8 -*-import argparse# (1) 聲明一個(gè)parser對象,該對象包含將命令行解析成 Python 數(shù)據(jù)類型所需的全部信息。ap = argparse.ArgumentParser(description=’Process some integers.’)# (2) 添加參數(shù)ap.add_argument('first') # 位置參數(shù),這里表示第一個(gè)出現(xiàn)的參數(shù)賦值給firstap.add_argument('--digit', type=int, help='輸入數(shù)字') # 聲明一個(gè)int類型參數(shù)ap.add_argument('--name', help='名字', default='dog') # 同上,default 表示默認(rèn)值# (3) 讀取命令行參數(shù)args = ap.parse_args()# (4) 調(diào)用這些參數(shù)print(args.first)print(args.digit)print('name = {}'.format(args.name))
調(diào)用
python test.py position_arg --name qwe
ArgumentParser對象(1)prog - 程序的名稱(默認(rèn): sys.argv[0])(2)usage - 描述程序用途的字符串(默認(rèn)值:從添加到解析器的參數(shù)生成)(3)description - 在參數(shù)幫助文檔之后顯示的文本 (默認(rèn)值:無)(4)epilog - 在參數(shù)幫助文檔之后顯示的文本(默認(rèn)值:無)(5)parents - 一個(gè) ap對象的列表,它們的參數(shù)也應(yīng)包含在內(nèi)(6)formatter_class - 用于自定義幫助文檔輸出格式的類(7)prefix_chars - 可選參數(shù)的前綴字符集合(默認(rèn)值:’-’)(8)fromfile_prefix_chars - 當(dāng)需要從文件中讀取其他參數(shù)時(shí),用于標(biāo)識文件名的前綴字符集合(默認(rèn)值:None)(8)argument_default - 參數(shù)的全局默認(rèn)值(默認(rèn)值: None)(9)conflict_handler - 解決沖突選項(xiàng)的策略(通常是不必要的)(10)add_help - 為解析器添加一個(gè) -h/?help 選項(xiàng)(默認(rèn)值: True)(11)allow_abbrev - 如果縮寫是無歧義的,則允許縮寫長選項(xiàng) (默認(rèn)值:True)
add_argument()方法(1)name or flags - 一個(gè)命名或者一個(gè)選項(xiàng)字符串的列表。(例如 foo 或 -f, --foo)(2)action - 表示該選項(xiàng)要執(zhí)行的操作(3)default - 默認(rèn)值(4)dest - 用來指定參數(shù)的位置,被添加到 parse_args() 所返回對象上的屬性名。(5)type - 為參數(shù)類型。(例如int)(6)choices - 用來選擇輸入?yún)?shù)的范圍。(例如choice = [1, 5, 10])(7)help - 用來描述這個(gè)選項(xiàng)的作用(8)nargs - 命令行參數(shù)應(yīng)當(dāng)消耗的數(shù)目。(9)const - 被一些 action 和 nargs 選擇所需求的常數(shù)。(10)required - 此命令行選項(xiàng)是否可省略 (僅選項(xiàng)可用)。(11)metavar - 在使用方法消息中使用的參數(shù)值示例。
import argparseimport 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')# subparsermodel_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 argsargs = parse_args()mode = args.modedeploy_path = args.deploy_pathexp_name = args.exp_namedef main():if mode == 'model':_deploy_model()elif mode == 'calib':_deploy_calib()else:logging.error( 'Mode error')if __name__ == ’__main__’:main()
到此這篇關(guān)于python argparse命令行參數(shù)解析的文章就介紹到這了,更多相關(guān)python argparse命令行參數(shù)內(nèi)容請搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!
相關(guān)文章:
1. asp讀取xml文件和記數(shù)2. PHP實(shí)現(xiàn)基本留言板功能原理與步驟詳解3. CSS自定義滾動(dòng)條樣式案例詳解4. vue 驗(yàn)證兩次輸入的密碼是否一致的方法示例5. 每日六道java新手入門面試題,通往自由的道路第二天6. 讓你的PHP同時(shí)支持GIF、png、JPEG7. python利用opencv實(shí)現(xiàn)顏色檢測8. 簡體中文轉(zhuǎn)換為繁體中文的PHP函數(shù)9. 多個(gè)SpringBoot項(xiàng)目采用redis實(shí)現(xiàn)Session共享功能10. JavaScript快速實(shí)現(xiàn)一個(gè)顏色選擇器
