zoukankan      html  css  js  c++  java
  • getopt例子

    (本例基于win7 + python3.4)

    import getopt, sys
    '''
    getopt 模块专门用来处理命令行参数
    
    函数
    getopt(args, shortopts, longopts = [])
    
    参数
        args       一般是sys.argv[1:]
        shortopts  短格式 (-) 
        longopts   长格式(--) 
    
    如:
    options, args = getopt.getopt(sys.argv[1:], "hp:i:", ["help", "ip=", "port="])
    
    参数分析:
    sys.argv[1:]
        --- sys.argv[0]  第一个参数,是脚本文件名
        --- sys.argv[1:] 第二个及后面的参数,是脚本文件运行所需的参数
    
    "hp:i:"
        短格式 (shortopts)
        --- h 后面没有冒号:表示后面不带参数
        --- p:和 i:后面有冒号表示后面需要参数
    
    ["help", "ip=", "port="]
        长格式 (longopts)
        --- help后面没有等号=,表示后面不带参数
        --- 其他两个有等号=,表示后面需要参数
    
    options
        返回值
        --- 是个包含元祖的列表,每个元组是分析出来的格式信息,比如 [('-i','127.0.0.1'),('-p','80')] ;
    
    args
        返回值
        ---是个列表,包含那些没有'-'或'--'的参数,比如:['hello','world','you']
    
    注意:定义命令行参数时,要先定义带'-'选项的参数,再定义没有'-'的参数
    
    
    使用示例:
     $ python test.py -i 127.0.0.1 -p 80 hello world you
    
     $ python test.py --ip=127.0.0.1 --port=80 hello world you
    '''
    def usage():
        print('Usage:')
        print('     -h --help')
        print('     -i --ip')
        print('     -p --port')
        print('Example:')
        print('     $ python test.py -i 127.0.0.1 -p 80 hello world')
        print('     $ python test.py --ip=127.0.0.1 --port=80 hello world')
    
    try:
        options, args = getopt.getopt(sys.argv[1:], "hp:i:", ["help", "ip=", "port="])
    except getopt.GetoptError as err:
        print('Error:')
        print('    ', str(err))
        usage()
        sys.exit(2)
    
    for opt, value in options:
        if opt in ("-h", "--help"):
            usage()
        elif opt in ("-i", "--ip"):
            print('ip:', value)
        elif opt in ("-p", "--port"):
            print('port:', value)
    
    for value in args:
        print(value)

    【运行效果图】

  • 相关阅读:
    DELPHI美化界面
    WebSevice相关
    Hotmail邮件接收
    DHTMLEdit
    Eclipse 基础
    POP3相关
    DELPHI中GIF的使用
    javaaop
    RAD Studio 2010 启动报错"displayNotification: 内存不够" 解决办法
    编程之道
  • 原文地址:https://www.cnblogs.com/hhh5460/p/4349257.html
Copyright © 2011-2022 走看看