• Python脚本获取参数的方式


    Python脚本获取参数的方式

    在运维过程中,常常需要自己写脚本,而python往往是最佳的选择。那么怎么获取python脚本的命令行参数呢,例如:

    python demo.py a b c
    

    怎么获取命令行参数,a,b,c 呢?可以通过sys库里面的argv来实现, 例如:

    $ cat demo.py 
    #-*- coding: UTF-8 -*- 
    import os
    import sys
    
    def demo():
        print sys.argv
        print len(sys.argv)
        for i in range(len(sys.argv)):
            print "parameter %s --- %s" %(i, sys.argv[i])
    
    if __name__ == "__main__":
        demo() 
    
    $ python demo.py a b c
    ['demo.py', 'a', 'b', 'c']
    4
    parameter 0 --- demo.py
    parameter 1 --- a
    parameter 2 --- b
    parameter 3 --- c
    

    不难看出python是把命令行的参数放在了sys.argv的这个list里面,包括脚本的名字。
    但是如果需要命令选项的时候,上面这种方式会显得很吃力,这是可以使用getopt库里的getopt函数,函数的原型为:

    getopt.getopt(args, options[, long_options])

    第一个参数为:获取的命令行参数,有sys.argv提供,不包括脚本名字
    第二个参数为:可以解析的option首字母组成的字符串,后面带有:表示必须要跟参数
    第三个参数为:长option,字符串组成的一个list,后面加=表示需要加参数
    如下所示:

    $ cat demo.py 
    #-*- coding: UTF-8 -*- 
    import os
    import sys
    import getopt
    
    opt, args = getopt.getopt(sys.argv[1:], "ha:b:", ['apple=','banana=','help'])
    
    print opt
    
    for op,value in opt:
        if op in ("-a", "--apple"):
            print value
        elif op in ("-b", "--banana"):
            print value
        elif op in ("-h", "--help"): 
            print "Help info"
            sys.exit()
    
    $ python demo.py -a A --apple A -b B --banana B -h
    [('-a', 'A'), ('--apple', 'A'), ('-b', 'B'), ('--banana', 'B'), ('-h', '')]
    A
    A
    B
    B
    Help info
    
  • 相关阅读:
    c语言 数组合并
    c++ 静态函数
    c++ 多继承 公有,私有,保护
    c++ 多继承 public
    stat用法:获取文件对应权限的数字
    sublime text3 (Mac) 快捷键
    c++ 多继承
    C++ 在继承中虚函数、纯虚函数、普通函数,三者的区别
    更换主机后SSH无法登录的问题
    ssh 连接不同无线网且IP以及用户名都相同
  • 原文地址:https://www.cnblogs.com/zk47/p/3918205.html
Copyright © 2020-2023  润新知