optparse是python中用来处理命令行参数的模块,可以自动生成程序的帮助信息,功能强大,易于使用,可以方便的生成标准的,符合Unix/Posix 规范的命令行说明。
使用 add_option() 来加入选项,使用 parse_args() 来解析命令行。
add_option()中参数:
add_option(self, *args, **kwargs)
第一个参数表示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,是一个对象,保存命令行参数值。通过命令行参数名,如 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 iamges', 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
'''
参数调用的顺序为:
1、options.dest参数
2、options.--参数
3、options.-参数
若无“dest参数”,则调用“--参数”
若“dest参数”和“--参数”均无,则调用“-参数”
以上顺序不要颠倒,否则报错
'''
print('file path of image: ', 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))
print(args)
if __name__ == '__main__':
main(sys.argv)
结果:
file path of image: ./image
file location of the trained network weights: ./weights_saved
iteration time of CRNN Net: 10000
gpu id: 0
['D:/test.py']