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])
来源: