python argparse 模块的功能是对命令行进行解析,检查命令行是否符合预定义的格式。
使用方法:
1、导入argparse模块 import argparse
2、创建argparse对象 parser = argparse.ArgumentParser()
3、添加命令行相关参数、选项 parser.add_argument("...")
4、解析 parser.parse_args()
例一:(删除指定的zabbix screen)
#!/usr/bin/env python2.7 #coding=utf-8 import sys import argparse import zabbixAuth import zabbixScreen if __name__ == "__main__": #if len(sys.argv) < 2 : # print "usage:",sys.argv[0],"screenName" # sys.exit(1) #if sys.argv[1] == "-h" or sys.argv[1] == "--help": # print "usage:",sys.argv[0],"screenName" # sys.exit() #以下三行的功能等效于以上的if 语句 parser = argparse.ArgumentParser() #创建argparse对象 parser.add_argument("screenName",help="Specifies the screen name of the is will be deleted") parser.parse_args() userAuth=zabbixAuth.zabbix_auth() token=userAuth.user_login() screenObj=zabbixScreen.zabbix_screen() screenidList=screenObj.screen_get(token,sys.argv[1]) if screenidList != None: print "screenID:",screenObj.screen_delete(token,screenidList[0]),"delete success" else: print "The screen:",sys.argv[1],"does not exists"
例二:(创建自定义的zabbix screen)
#!/usr/bin/env python2.7 #coding=utf-8 import sys import argparse import zabbixAuth import zabbixScreen if __name__ == "__main__": #if len(sys.argv) < 4 : # print "usage:",sys.argv[0],"screenName rows columns" # sys.exit(1) #if sys.argv[1] == "-h" or sys.argv[1] == "--help": # print "usage:",sys.argv[0],"screenName rows columns" # sys.exit() #if sys.argv[2].isdigit()==False or sys.argv[3].isdigit()==False: # print "Note: rows and columns is number" # sys.exit() #以上注释的if 语句等效于以下5行 parser = argparse.ArgumentParser() parser.add_argument("screenName",help="Given a string to set the screen name") parser.add_argument("rows",help="Given a number to set the lines",type=int) parser.add_argument("columns",help="Given a number to set the columns",type=int) parser.parse_args() if int(sys.argv[3])>3 : print "Note: columns must be less than 3" sys.exit() userAuth=zabbixAuth.zabbix_auth() token=userAuth.user_login() screenObj=zabbixScreen.zabbix_screen() screenidList=screenObj.screen_get(token,sys.argv[1]) if screenidList != None: print "screen already exists" else: print "screnn",sys.argv[1],"create success, screenid is",screenObj.screen_create(token,sys.argv[2],sys.argv[3],sys.argv[1])