python 命令行传参

1. 简单的写法:

通过导入模块sys

import sys

if __name__ == '__main__':
    argc = len(sys.argv)
    arg0 = sys.argv[0]
    #...
    

2. 稍微复杂一点的参数可以使用getopt模块:

import sys
import getopt

if __name__ == '__main__':
    opt,args = getopt.getopt(sys.argv[1:], "h:p:f:i:t:", ["help"])
    host = ""
    port = 0
    file = ""
    index = ""
    type_ = ""
    for op, val in opt:
        if op == '-h':
            host = val
        elif op == '-p':
            port = val
        elif op == '-f':
            file = val
        elif op == '-i':
            index = val
        elif op == '-t':
            type_ = val
        elif op == '--help':
            Usage(sys.argv[0])

    if (host=="" or file=="" or index=="" or type_==""):
        Usage(sys.argv[0])
        sys.exit()

sys.argv[1:] 表示从第1个参数开始解析,不包括第0个参数(脚本路径)。

"h:p:f:i:t:" 表示有5个参数,参数使用短标,冒号‘:’ 表示这个参数后面有值,不是一个开关。如果不带冒号则表示该参数不带值。

后面的["help"]表示支持长参数“--help”.

你可能感兴趣的:(编程学习,python,python,参数)