1.最常用的sys.argv[],這個不多談
2.形如
dahu@dahu-OptiPlex-3046:~/json_folder$ python sub1.py -abb -oaaa --output=out -caa -abb3 --output=papa file1 -abb3 file2
輸出:
============ opts ================== [('-a', 'bb'), ('-o', 'aaa'), ('--output', 'out'), ('-c', 'aa'), ('-a', 'bb3'), ('--output', 'papa')] 6 ============ args ================== ['file1', '-abb3', 'file2'] 3 -a ==> bb -o ==> aaa --output ==> out -c ==> aa -a ==> bb3 --output ==> papa
code:
#coding=utf-8 #!/usr/bin/env python import sys,getopt
# 短格式 后面沒有冒號:表示后面不帶參數,后面有冒號表示后面需要參數 # 長格式 后面沒有等號 =,表示后面不帶參數,其他有 =,表示后面需要參數 # 注意一旦出現不帶長短格式的標記'-',就進入arg模式了,例如例子中file1后面的-abb3就認為是arg,而不是opt def usage(): print("Usage:%s [-a|-o|-c] [--help|--output] args...." % sys.argv[0]) if "__main__" == __name__: try: opts, args = getopt.getopt(sys.argv[1:], "a:o:c:", ["help", "output="]) print("============ opts ==================") print(opts) print len(opts) print("============ args ==================") print(args) print len(args)
# check all param for opt, arg in opts: if opt in ("-h", "--help"): usage() sys.exit(1) elif opt in ("-t", "--test"): print("for test option") else: print("%s ==> %s" % (opt, arg)) except getopt.GetoptError: print("getopt error!") usage() sys.exit(1)