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])