最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python 利用argparse模塊實(shí)現(xiàn)腳本命令行參數(shù)解析

 更新時(shí)間:2020年12月28日 08:33:20   作者:授客  
這篇文章主要介紹了Python 利用argparse模塊實(shí)現(xiàn)腳本命令行參數(shù)解析,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

study.py內(nèi)容如下

#!/usr/bin/env python
# -*- coding:utf-8 -*-
 
__author__ = 'shouke'
 
import argparse
 
def argparseFunc():
 '''
 基于argparse模塊實(shí)現(xiàn)命令參數(shù)解析功能
 執(zhí)行示例:
  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")
 # 添加不帶默認(rèn)值的可解析參數(shù)
 parser.add_argument("-i", "--ip", help="ip addr") #注意: -h、--help為內(nèi)置參數(shù),不可用
 parser.add_argument("-p", "--port",help="host port")
 
 # 添加帶默認(rèn)值的可解析參數(shù)(# action = store_true 表示是如果使用了這個(gè)參數(shù),則值參數(shù)值設(shè)置為T(mén)rue # 更多action配置可參考源碼
 # 需要注意的是,不能為帶默認(rèn)值參數(shù)指定參數(shù)值,會(huì)報(bào)錯(cuò),該參數(shù)值會(huì)被當(dāng)作不識(shí)別的參數(shù)
 parser.add_argument("-a", "--auth", help="if auth need", action="store_true")
 
 
 # 添加互斥參數(shù)(比如 例中的-r和-w 同時(shí)只能用一個(gè))
 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")
 
 # 添加參數(shù)時(shí)不設(shè)置設(shè)置參數(shù)說(shuō)明
 parser.add_argument('-v') # show verbose
 
 # 添加參數(shù)時(shí)不設(shè)置參數(shù)全名
 parser.add_argument('-V', help="version")
 
 ARGS = parser.parse_args() # 獲取命令行參數(shù)
 print('ARGS:', ARGS)
 
 # 獲取某個(gè)參數(shù)值
 if ARGS.ip: # 注意,這里的參數(shù)名,必須使用參數(shù)全稱
 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()

運(yùn)行測(cè)試

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

結(jié)果如下

python study.py -i127.0.0.1 # 注意,參數(shù)和參數(shù)值之間可以沒(méi)有空格

結(jié)果如下

python study.py -notExists 1

結(jié)果如下

如上,以上代碼實(shí)現(xiàn)是針對(duì)單個(gè)模塊腳本,如果要在多個(gè)模塊中使用咋辦?解決方法為封裝為類,具體參見(jiàn)“代碼實(shí)踐2”

#代碼實(shí)踐2

argument_parser.py
 
#!/usr/bin/env python
# -*- coding:utf-8 -*-
 
 
'''
@Author : shouke
'''
 
 
import argparse
 
class ArgParser(object):
 '''
  參數(shù)解析器
 '''
 
 
 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):
  '''
  添加常規(guī)選項(xiàng)(非互斥選項(xiàng))
  :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" 表示如果不設(shè)置該選項(xiàng)的值,則默認(rèn)值為true,類似的action="store_false" 表示默認(rèn)值為false
  ]
  其中,每個(gè)list元素為argparse.ArgumentParserlei add_argument類函數(shù)實(shí)參的字符串表示,add_argument函數(shù)定義add_argument(self, *args,**kwargs)
  '''
 
  for option in options:
   eval('self.parser.add_argument(%s)' % option)
 
 
 def add_exclusive_arguments(self, options:list):
  '''
  添加互斥選項(xiàng)
  :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中引用(注意:為了讓參數(shù)解析器起到應(yīng)起的作用,建議在腳本最上方構(gòu)造參數(shù)解析器對(duì)象)

study.py內(nèi)容如下

#!/usr/bin/env python
# -*- coding:utf-8 -*-
 
__author__ = 'shouke'
 
from argument_parser import ArgParser
 
none_exclusive_arguments = [
 '"-ip", help="自動(dòng)化測(cè)試服務(wù)平臺(tái)地址"',
 '"-projectId", help="自動(dòng)化測(cè)試項(xiàng)目id"',
 '"-runEnv", help="自動(dòng)化測(cè)試項(xiàng)目運(yùn)行環(huán)境"',
 '"-logLevel", help="日志級(jí)別"',
 '"-masterHost", help="master服務(wù)地址"',
 '"-masterPort", help="master服務(wù)端口"'
]
 
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)

運(yùn)行測(cè)試

python study.py -i 127.0.0.1 -r

運(yùn)行結(jié)果如下

到此這篇關(guān)于Python 利用argparse模塊實(shí)現(xiàn)腳本命令行參數(shù)解析的文章就介紹到這了,更多相關(guān)Python 實(shí)現(xiàn)腳本命令行參數(shù)解析內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python文件和流(實(shí)例講解)

    Python文件和流(實(shí)例講解)

    下面小編就為大家?guī)?lái)一篇Python文件和流(實(shí)例講解)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-09-09
  • 深入flask之異步非堵塞實(shí)現(xiàn)代碼示例

    深入flask之異步非堵塞實(shí)現(xiàn)代碼示例

    這篇文章主要介紹了深入flask之異步非堵塞實(shí)現(xiàn)代碼示例,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-07-07
  • python xlwt模塊的使用解析

    python xlwt模塊的使用解析

    這篇文章主要介紹了python xlwt模塊的使用解析,幫助大家更好的理解和學(xué)習(xí)使用python,感興趣的朋友可以了解下
    2021-04-04
  • numpy 進(jìn)行數(shù)組拼接,分別在行和列上合并的實(shí)例

    numpy 進(jìn)行數(shù)組拼接,分別在行和列上合并的實(shí)例

    今天小編就為大家分享一篇numpy 進(jìn)行數(shù)組拼接,分別在行和列上合并的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-05-05
  • 使用Python制作一個(gè)數(shù)據(jù)預(yù)處理小工具(多種操作一鍵完成)

    使用Python制作一個(gè)數(shù)據(jù)預(yù)處理小工具(多種操作一鍵完成)

    這篇文章主要介紹了使用Python制作一個(gè)數(shù)據(jù)預(yù)處理小工具(多種操作一鍵完成),本文通過(guò)圖文實(shí)例相結(jié)合給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-02-02
  • Python 制作子彈圖

    Python 制作子彈圖

    這篇文章主要介紹了Python 制作子彈圖,眾所周知,Python 的應(yīng)用是非常廣泛的,今天我們就通過(guò) matplotlib 庫(kù)學(xué)習(xí)下如何制作精美的子彈圖,需要的朋友可以參考一下
    2021-12-12
  • Python實(shí)現(xiàn)批量添加視頻文本水印

    Python實(shí)現(xiàn)批量添加視頻文本水印

    這篇文章主要為大家詳細(xì)介紹了如何基于PyQt5開(kāi)發(fā)一個(gè)視頻水印批量添加工具,旨在為多個(gè)視頻文件添加文本水印,感興趣的小伙伴可以參考一下
    2025-02-02
  • 使用Flask-Login模塊實(shí)現(xiàn)用戶身份驗(yàn)證和安全性

    使用Flask-Login模塊實(shí)現(xiàn)用戶身份驗(yàn)證和安全性

    當(dāng)你想要在你的Flask應(yīng)用中實(shí)現(xiàn)用戶身份驗(yàn)證和安全性時(shí),F(xiàn)lask-Login這個(gè)擴(kuò)展將會(huì)是你的最佳伙伴,它提供了一組簡(jiǎn)單而強(qiáng)大的工具來(lái)處理,下面我們就來(lái)看看具體的操作方法吧
    2023-08-08
  • Python疫情確診折線圖實(shí)現(xiàn)數(shù)據(jù)可視化實(shí)例詳解

    Python疫情確診折線圖實(shí)現(xiàn)數(shù)據(jù)可視化實(shí)例詳解

    數(shù)據(jù)可視化是指用圖形或表格的方式來(lái)呈現(xiàn)數(shù)據(jù)。圖表能夠清楚地呈現(xiàn)數(shù)據(jù)性質(zhì),?以及數(shù)據(jù)間或?qū)傩蚤g的關(guān)系,可以輕易地讓人看圖釋義。用戶通過(guò)探索圖(Exploratory?Graph)可以了解數(shù)據(jù)的特性、尋找數(shù)據(jù)的趨勢(shì)、降低數(shù)據(jù)的理解門(mén)檻
    2022-09-09
  • python pygame 憤怒的小鳥(niǎo)游戲示例代碼

    python pygame 憤怒的小鳥(niǎo)游戲示例代碼

    這篇文章主要介紹了python pygame 憤怒的小鳥(niǎo)游戲,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-02-02

最新評(píng)論

沭阳县| 自治县| 名山县| 虞城县| 会同县| 满洲里市| 东乌珠穆沁旗| 贵德县| 南川市| 宁蒗| 竹山县| 龙江县| 正阳县| 华宁县| 建湖县| 峨眉山市| 承德市| 岱山县| 开江县| 永登县| 吉木萨尔县| 莱芜市| 沛县| 瑞金市| 突泉县| 江城| 桃园县| 合江县| 陆丰市| 东港市| 修水县| 彩票| 万全县| 咸丰县| 泰州市| 惠水县| 吴江市| 新田县| 吐鲁番市| 郑州市| 海盐县|