python 命令列傳參
阿新 • • 發佈:2018-11-12
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”.