电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

Python 利用argparse模塊實現腳本命令行參數解析

瀏覽:91日期:2022-07-01 09:52:14

study.py內容如下

#!/usr/bin/env python# -*- coding:utf-8 -*- __author__ = ’shouke’ import argparse def argparseFunc(): ’’’ 基于argparse模塊實現命令參數解析功能 執行示例: python study.py -i 172.19.7.236 -p 8080 -a -r python study.py --ip 172.19.7.236 --port 7077 --auth -w -v True ’’’ parser = argparse.ArgumentParser(description='study.py usage help document') # 添加不帶默認值的可解析參數 parser.add_argument('-i', '--ip', help='ip addr') #注意: -h、--help為內置參數,不可用 parser.add_argument('-p', '--port',help='host port') # 添加帶默認值的可解析參數(# action = store_true 表示是如果使用了這個參數,則值參數值設置為True # 更多action配置可參考源碼 # 需要注意的是,不能為帶默認值參數指定參數值,會報錯,該參數值會被當作不識別的參數 parser.add_argument('-a', '--auth', help='if auth need', action='store_true') # 添加互斥參數(比如 例中的-r和-w 同時只能用一個) exclusive_group = parser.add_mutually_exclusive_group() exclusive_group.add_argument('-r','--read', help='read enabled' , action='store_true') exclusive_group.add_argument('-w','--write', help='write enabled', action='store_true') # 添加參數時不設置設置參數說明 parser.add_argument(’-v’) # show verbose # 添加參數時不設置參數全名 parser.add_argument(’-V’, help='version') ARGS = parser.parse_args() # 獲取命令行參數 print(’ARGS:’, ARGS) # 獲取某個參數值 if ARGS.ip: # 注意,這里的參數名,必須使用參數全稱 print('host addr is: %s' % ARGS.ip) if ARGS.port: print('host port is: : %s' % ARGS.port) if ARGS.auth: print('auth need: : %s' % ARGS.auth) if ARGS.read: print('read enabled: %s' % ARGS.read) if ARGS.write: print('write enabled: %s' % ARGS.write) argparseFunc()

運行測試

python study.py -i 172.19.7.236 -p 8080 -a -rpython study.py --ip 172.19.7.236 --port 7077 --auth -w -v True

結果如下

Python 利用argparse模塊實現腳本命令行參數解析

python study.py -i127.0.0.1 # 注意,參數和參數值之間可以沒有空格

結果如下

Python 利用argparse模塊實現腳本命令行參數解析

python study.py -notExists 1

結果如下

Python 利用argparse模塊實現腳本命令行參數解析

如上,以上代碼實現是針對單個模塊腳本,如果要在多個模塊中使用咋辦?解決方法為封裝為類,具體參見“代碼實踐2”

#代碼實踐2

argument_parser.py #!/usr/bin/env python# -*- coding:utf-8 -*- ’’’@Author : shouke’’’ import argparse class ArgParser(object): ’’’ 參數解析器 ’’’ def __init__(self, none_exclusive_arguments, exclusive_arguments, description=’’): self.parser = argparse.ArgumentParser(description=description) self.add_none_exclusive_arguments(none_exclusive_arguments) self.add_exclusive_arguments(exclusive_arguments) def add_none_exclusive_arguments(self, options:list): ’’’ 添加常規選項(非互斥選項) :param options 格式為list類型,形如 [ ’'-a', '--all', help='do not ignore entries starting with .'’, ’'-b', '--block', help='scale sizes by SIZE before printing them'’, ’'-C', '--color', help='colorize the output; WHEN can be ’never’, ’auto’'’, ’'-flag', help='make flag', action='store_true'’, # action='store_true' 表示如果不設置該選項的值,則默認值為true,類似的action='store_false' 表示默認值為false ] 其中,每個list元素為argparse.ArgumentParserlei add_argument類函數實參的字符串表示,add_argument函數定義add_argument(self, *args,**kwargs) ’’’ for option in options: eval(’self.parser.add_argument(%s)’ % option) def add_exclusive_arguments(self, options:list): ’’’ 添加互斥選項 :param options 格式為list,形如以下 [ (’'-r','--read',help='Read Action',action='store_true'’, ’'-w','--write',help='Write Action',action='store_true'’) ] ’’’ for option_tuple in options: exptypegroup = self.parser.add_mutually_exclusive_group() for item in option_tuple: eval(’exptypegroup.add_argument(%s)’ % item) @property def args(self): return self.parser.parse_args()

在xxx.py中引用(注意:為了讓參數解析器起到應起的作用,建議在腳本最上方構造參數解析器對象)

study.py內容如下

#!/usr/bin/env python# -*- coding:utf-8 -*- __author__ = ’shouke’ from argument_parser import ArgParser none_exclusive_arguments = [ ’'-ip', help='自動化測試服務平臺地址'’, ’'-projectId', help='自動化測試項目id'’, ’'-runEnv', help='自動化測試項目運行環境'’, ’'-logLevel', help='日志級別'’, ’'-masterHost', help='master服務地址'’, ’'-masterPort', help='master服務端口'’] exclusive_arguments = [ (’'-r', '--read', help='Read Action',action='store_true'’, ’'-w', '--write', help='Write Action',action='store_true'’)] args = ArgParser(none_exclusive_arguments, exclusive_arguments).args print(args)print(args.ip)print(args.read)

運行測試

python study.py -i 127.0.0.1 -r

運行結果如下

Python 利用argparse模塊實現腳本命令行參數解析

到此這篇關于Python 利用argparse模塊實現腳本命令行參數解析的文章就介紹到這了,更多相關Python 實現腳本命令行參數解析內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: Python 編程
相關文章:
主站蜘蛛池模板: 尼龙PA610树脂,尼龙PA612树脂,尼龙PA1010树脂,透明尼龙-谷骐科技【官网】 | 干式变压器厂_干式变压器厂家_scb11/scb13/scb10/scb14/scb18干式变压器生产厂家-山东科锐变压器有限公司 | 专业的新乡振动筛厂家-振动筛品质保障-环保振动筛价格—新乡市德科筛分机械有限公司 | 镀锌方管,无缝方管,伸缩套管,方矩管_山东重鑫致胜金属制品有限公司 | 重庆监控_电子围栏设备安装公司_门禁停车场管理系统-劲浪科技公司 | 南京交通事故律师-专打交通事故的南京律师 | 鑫铭东办公家具一站式定制采购-深圳办公家具厂家直销 | 质构仪_鱼糜弹性仪-上海腾拔仪器科技有限公司| 紫外可见光分光度计-紫外分光度计-分光光度仪-屹谱仪器制造(上海)有限公司 | 非标压力容器_碳钢储罐_不锈钢_搪玻璃反应釜厂家-山东首丰智能环保装备有限公司 | 沈阳真空机_沈阳真空包装机_沈阳大米真空包装机-沈阳海鹞真空包装机械有限公司 | Duoguan 夺冠集团| 奶茶加盟,奶茶加盟店连锁品牌-甜啦啦官网 | 酒店厨房设计_中央厨房设计_北京商用厨房设计公司-奇能商厨 | 分光色差仪,测色仪,反透射灯箱,爱色丽分光光度仪,美能达色差仪维修_苏州欣美和仪器有限公司 | 回转支承-转盘轴承-回转驱动生产厂家-洛阳隆达轴承有限公司 | 无轨电动平车_轨道平车_蓄电池电动平车★尽在新乡百特智能转运设备有限公司 | 耐破强度测试仪-纸箱破裂强度试验机-济南三泉中石单品站 | 盐水蒸发器,水洗盐设备,冷凝结晶切片机,转鼓切片机,絮凝剂加药系统-无锡瑞司恩机械有限公司 | 液压中心架,数控中心架,自定心中心架-烟台恒阳机电设计有限公司 行星搅拌机,双行星搅拌机,动力混合机,无锡米克斯行星搅拌机生产厂家 | 步进_伺服_行星减速机,微型直流电机,大功率直流电机-淄博冠意传动机械 | 恒温槽_恒温水槽_恒温水浴槽-上海方瑞仪器有限公司 | 盘扣式脚手架-附着式升降脚手架-移动脚手架,专ye承包服务商 - 苏州安踏脚手架工程有限公司 | 电子万能试验机_液压拉力试验机_冲击疲劳试验机_材料试验机厂家-济南众标仪器设备有限公司 | 红立方品牌应急包/急救包加盟,小成本好项目代理_应急/消防/户外用品加盟_应急好项目加盟_新奇特项目招商 - 中红方宁(北京) 供应链有限公司 | 东莞压铸厂_精密压铸_锌合金压铸_铝合金压铸_压铸件加工_东莞祥宇金属制品 | 乳化沥青设备_改性沥青设备_沥青加温罐_德州市昊通路桥工程有限公司 | 净水器代理,净水器招商,净水器加盟-FineSky德国法兹全屋净水 | 厂房出租-厂房规划-食品技术-厂房设计-厂房装修-建筑施工-设备供应-设备求购-龙爪豆食品行业平台 | 热熔胶网膜|pes热熔网膜价格|eva热熔胶膜|热熔胶膜|tpu热熔胶膜厂家-苏州惠洋胶粘制品有限公司 | 酒万铺-酒水招商-酒水代理| 油罐车_加油机_加油卷盘_加油机卷盘_罐车人孔盖_各类球阀_海底阀等车用配件厂家-湖北华特专用设备有限公司 | 贴片电感_贴片功率电感_贴片绕线电感_深圳市百斯特电子有限公司 贴片电容代理-三星电容-村田电容-风华电容-国巨电容-深圳市昂洋科技有限公司 | 无菌水质袋-NASCO食品无菌袋-Whirl-Pak无菌采样袋-深圳市慧普德贸易有限公司 | 空气能暖气片,暖气片厂家,山东暖气片,临沂暖气片-临沂永超暖通设备有限公司 | B2B网站_B2B免费发布信息网站_B2B企业贸易平台 - 企资网 | 天津电机维修|水泵维修-天津晟佳机电设备有限公司 | 玖容气动液压设备有限公司-气液增压缸_压力机_增压机_铆接机_增压器 | 科研ELISA试剂盒,酶联免疫检测试剂盒,昆虫_植物ELISA酶免试剂盒-上海仁捷生物科技有限公司 | 伊卡洛斯软装首页-电动窗帘,别墅窗帘,定制窗帘,江浙沪1000+别墅窗帘案例 | 美侍宠物-专注宠物狗及宠物猫训练|喂养|医疗|繁育|品种|价格 |