python腳本傳入參數--精講(getopt模塊)


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)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM