国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

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

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

瀏覽:68日期: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 編程
相關文章:
主站蜘蛛池模板: 国产资源精品一区二区免费 | 99国产精品农村一级毛片 | 国产一区二区三区免费大片天美 | 114毛片免费观看网站 | 高清国产亚洲va精品 | hdxxx色视频| 欧美一级成人一区二区三区 | 中文在线视频 | 亚洲成人777 | 国产八区 | 亚洲视频中文字幕在线 | 日本午夜三级 | 欧美精品在线视频 | 日本高清不卡在线观看 | 玖草| 91成人在线免费观看 | 亚洲伊人色 | 亚洲精品国产经典一区二区 | 中文字幕波多野不卡一区 | 女在床上被男的插爽叫视频 | 国产精品私人玩物在线观看 | 台湾黄三级高清在线观看播放 | 毛片直接看 | 欧美在线一区二区三区不卡 | 日韩免费一区二区三区在线 | 美女张开腿给男生桶下面视频 | 久久久久久久久久毛片精品美女 | 日韩欧美国产一区二区三区 | a毛片免费观看 | 亚洲国内精品自在线影视 | 女人一级一级毛片 | 午夜一级毛片看看 | 亚洲免费一区 | 亚洲国产成人久久精品图片 | 国产爽的冒白浆的视频高清 | 全免费a级毛片免费毛视频 全午夜免费一级毛片 | 九月婷婷亚洲综合在线 | 欧美综合在线视频 | 毛片免费全部免费播放 | 大桥未久在线精品视频在线 | 新版天堂中文资源官网 |