python中處理命令列引數的模組optpars
阿新 • • 發佈:2019-01-06
optpars是python中用來處理命令列引數的模組,可以自動生成程式的幫助資訊,功能強大,易於使用,可以方便的生成標準的,符合Unix/Posix 規範的命令列說明。
使用 add_option() 來加入選項,使用 parse_args() 來解析命令列。
第二個引數表示option的全拼,以兩個中劃線引導,例如--file、--Opencv_version;
default= : 表示命令引數的預設值;
metavar=: 顯示到幫助文件中用來提示使用者輸入期望的命令引數;
dest=:指定引數在options物件中成員的名稱,如果沒有指定dest引數,將用命令列引數名來對options物件的值進行存取。
args,是一個由 positional arguments 組成的列表;
使用 add_option() 來加入選項,使用 parse_args() 來解析命令列。
add_option()中引數
第一個引數表示option的縮寫,以單箇中劃線引導,例如-f、-d,只能用單個字母,可以使用大寫;第二個引數表示option的全拼,以兩個中劃線引導,例如--file、--Opencv_version;
第一第二個引數可以單獨使用,也可以同時使用,但必須保證有其中一個;
從第三個引數開始是命名引數,是可選引數,常用的幾個:
type=: 表示輸入命令列引數的值的型別,預設為string,可以指定為string, int, choice, float,complex其中一種;default=
metavar=: 顯示到幫助文件中用來提示使用者輸入期望的命令引數;
dest=:指定引數在options物件中成員的名稱,如果沒有指定dest引數,將用命令列引數名來對options物件的值進行存取。
help=: 顯示在幫助文件中的資訊;
解析命令列
(options, args) = parse.parse_args()
或在main(argv)函式裡:
(options, args) = parser.parse_args(argv)
options,是一個物件(optpars.Values),儲存有命令列引數值。通過命令列引數名,如 file,訪問其對應的值: options.file ;args,是一個由 positional arguments 組成的列表;
optparse使用
import sys from optparse import OptionParser parser = OptionParser() parser.add_option('-f','--file',type=str,default='./image',help='file path of images',dest='file_path') parser.add_option('--weights','-w',type=str,default='./weights_saved',help="file location of the trained network weights") parser.add_option('--iterations','-i',type=int,default=10000,help='iteration time of CRNN Net') parser.add_option('--gpu','-g',type=int,default=0,help="gpu id") def main(argv): (options, args) = parser.parse_args() (options, args) = parser.parse_args(argv) # both OK print 'file path of images: ' + options.file_path print "file location of the trained network weights: " + options.weights print 'iteration time of CRNN Net: ' + str(options.iterations) print 'gpu id: ' + str(options.gpu) if __name__ == '__main__': main(sys.argv)
檢視幫助文件:
python test.py -h
顯示:
Usage: test.py [options]
Options:
-h, --help show this help message and exit
-f FILE_PATH, --file=FILE_PATH
file path of images
-w WEIGHTS, --weights=WEIGHTS
file location of the trained network weights
-i ITERATIONS, --iterations=ITERATIONS
iteration time of CRNN Net
-g GPU, --gpu=GPU gpu id
輸入命令列引數:
python test.py -f ../tensorflow/train_image -w ../tensorflow/weights -i 5000 -g 2
輸出:
file path of images: ../tensorflow/train_image
file location of the trained network weights: ../tensorflow/weights
iteration time of CRNN Net: 5000
gpu id: 2