zoukankan      html  css  js  c++  java
  • python getopt模块使用方法

    python中 getopt 模块,是专门用来处理命令行参数的 

    getop标准格式:

    函数getopt(args, shortopts, longopts = [])

      shortopts 是短参数    类似于这样:python test.py -h # 输出帮助信息
      longopts 是长参数   类似于这样:python test.py --help # 输出帮助信息

      args指的是当前脚本接收的参数,它是一个列表,可以通过sys.argv获得,在Python里的命令行参数是存储在sys.argv里,argv是一个列表,第一个元素是程序名称。
    示例:

    #test.py
    # -*- coding:utf-8 -*-
    import sys
    
    if __name__ == '__main__':
            for item in sys.argv:
                    print i

    在命令行运行./test.py  1 2 3,结果如下:

    test.py
    1
    2
    3

    下面写一个getop常用格式示例:

    代码:

    #test.py 
    import getopt import sys
    try: options,args = getopt.getopt(sys.argv[1:],"hp:i:",["help","ip=","port="]) except getopt.GetoptError: sys.exit() print ("options:",options) print("args:",args) for name,value in options: if name in ("-h","--help"): print ("help:正确的使用方法是.......") if name in ("-i","--ip"): print ('ip 是:',value) if name in ("-p","--port"): print ('port 端口是:',value)

     命令行中输入:

    python test.py -h --ip=192.168.0.1 -p 80  a1 a2
    

     运行结果为:

     options: [('-h', ''), ('--ip', '192.168.0.1'), ('-p', '80')]
     args: ['a1', 'a2']
     help:正确的使用方法是.......
     ip 是: 192.168.0.1
     port 端口是: 80
    

     解析:

    sys.argv[1:]      过滤掉第一个参数(它是执行脚本的名字,不应算作参数的一部分)。 

    “hp:i:”               短格式, h 后面没有冒号:表示后面不带参数,p:和 i:后面有冒号表示后面需要参数

    ["help","ip=","port="]     长格式, help后面没有等号=,表示后面不带参数,ip、port后面有=,表示后面需要参数
    options 是个包含元组的列表,每个元组是分析出来的格式信息
    args 是个列表,包含那些没有‘-’或‘--’的参数


    注意:定义命令行参数时,要先定义带'-'选项的参数,再定义没有‘-’的参数

  • 相关阅读:
    基于摸板匹配的目標跟蹤算法
    spoj 2713 Can you answer these queries IV
    zoj 3633 Alice's present
    hdu 3642 Get The Treasury
    poj 1195 Mobile phones
    poj 2760 End of Windless Days
    zoj 3540 Adding New Machine
    spoj 1716 Can you answer these queries III
    spoj 1043 Can you answer these queries I
    spoj 2916 Can you answer these queries V
  • 原文地址:https://www.cnblogs.com/ytc6/p/9081913.html
Copyright © 2011-2022 走看看