使用docopt生成Python腳本參數項
阿新 • • 發佈:2018-06-04
docopt optparse Python腳本參數 簡介
相比較optparse和argparse,docopt更節省程序員的編寫腳本參數提示和參數項時間,但更隨意和不規範,且代碼維護性更差
使用案例:
# coding=utf-8 """1 #這兒寫標題,-h的時候會被打印出來 Usage: #沒有出現在Usage中的不規範用法,將會打印Usage段,並sys.exit(1) 1.py D_IP init_instance [--configSvr] [--replname=<replSetName>] [-P PORT | --port=PORT] [--disk=data{}] 1.py init_mongos [-P PORT | --port=PORT] [--instance=<IP>:<PORT>] 1.py -h | --help Arguments: #可以直接輸入參數,而不用輸入參數名。其位置由上面的Usage定義 D_IP destination IP Options: #對上面Usage中出現的參數的說明, -P PORT Self port. #當一個參數項同時擁有-X --xx兩種形式的表達方式的時候 --disk=DATA_NUMBER Install in /Data{}. #結果字典中返回的參數名為--xx --replname=<replSetName> ReplSet`s Name. # # 傳值的參數項有兩種表達方式 -X YY --xx=YY 或 -X <yy>, --xx <yy> # 前一種參數值提示應全大寫,後一種用逗號分隔,提示應該用<>包裹 """ from docopt import docopt def concat_parameters(dict_a): opt_str = ‘‘ for i in dict_a.keys(): # 如果該選項非false(有值,或True),且是--parameters,追加拼接到參數字符串中 if dict_a[i] and i[0:2] == ‘--‘: print(‘key:‘, i) opt_str = opt_str+‘ {}={}‘.format(i,dict_a[i]) print(opt_str) if __name__ == ‘__main__‘: arguments = docopt(__doc__, version=‘0.1.1rc‘) #借用了腳本的__doc__屬性存放參數說明 # version選項指定了腳本的版本信息 # print(arguments) if arguments[‘init_instance‘]: D_IP = arguments[‘D_IP‘] concat_parameters(arguments) elif arguments[‘init_mongos‘]: pass
使用方式:
python 1.py init_instance --port=3304
參考連接
Github項目:docopt
使用docopt生成Python腳本參數項