zoukankan      html  css  js  c++  java
  • getopt模块的学习

    在运行程序时,可能需要根据不同的条件,输入不同的命令行选项来实现不同的功能。目前有短选项长选项两种格式。短选项格式为"-"加上单个字母选项;长选项为"--"加上一个单词。
    函数getopt(args, shortopts, longopts = [])可以用来取得命令行参数。
    其中,参数args一般是sys.argv[1:],shortopts  短格式 (-) ,longopts 长格式(--) 
    (1)sys.argv可以获取所有的命令行输入参数
    #新建脚本get.py:
    #!/usr/bin/python3
    # coding: UTF-8
    import sys
    print sys.argv
    执行脚本:python get.py -o t --help cmd file1 file2
    脚本输出为:['get.py', '-o', 't', '--help', 'cmd', 'file1', 'file2']。可见,所有命令行参数以空格为分隔符,都保存在了sys.argv列表中
    (2)短格式与长格式的参数
    例如:命令行中输入:
    • python test.py -i 127.0.0.1 -p 80 55 66
    • python test.py --ip=127.0.0.1 --port=80 55 66
    其中,-i -p是短格式参数,--ip,--port是长格式参数
    对于短格式,"-"号后面要紧跟一个选项字母。如果还有此选项的附加参数,可以用空格分开,也可以不分开。空格长度任意,附加参数也可用引号括起来。如:
    • -o
    • -oa
    • -obbbb
    • -o bbbb
    • -o "a b"
    对于长格式,"--"号后面要跟一个单词。如果还有些选项的附加参数,后面要紧跟"=",再加上参数。"="号前后不能有空格。如:
    • --help=file1
    (3)举栗代码:
    try:
        options,args = getopt.getopt(sys.argv[1:],"hp:i:",["help","ip=","port="])
    except getopt.GetoptError:
        sys.exit()
        
    for name,value in options:
        if name in ("-h","--help"):
            usage()
        if name in ("-i","--ip"):
            print 'ip is----',value
        if name in ("-p","--port")
            print 'port is----',value
    短格式:"hp:i:"-----> h 后面没有冒号:表示后面不带参数,p:和 i:后面有冒号表示后面需要参数
    长格式:["help","ip=","port="] ----- >help后面没有等号=,表示后面不带参数,其他三个有=,表示后面需要参数
     
    返回值 options 是个包含元祖的列表,每个元祖是分析出来的格式信息,比如 [('-i','127.0.0.1'),('-p','80')] ;
    args 是个列表,包含那些没有'-'或'--'的参数,比如:['55','66']
    注意:定义命令行参数时,要先定义带'-'选项的参数,再定义没有'-'的参数
     
     
     

  • 相关阅读:
    JAVA---File递归遍历文件目录,输出绝对路径
    JAVA--Map集合
    (笔记)JAVA--集合实现斗地主洗牌、发牌、看牌(利用TreeSet排序)
    SVN简单使用
    System.Object
    动态创建控件
    select 查询
    数据类型
    入门(值得注意的地方)
    错误调式 异常处理
  • 原文地址:https://www.cnblogs.com/mianbaoshu/p/14028727.html
Copyright © 2011-2022 走看看