1. 程式人生 > >python 命令列傳參

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”.