Overview
python程序也可以拥有C语言风格的命令行参数,例如-h/--help输出帮助信息,-i/--input提示输入文件,-o/--output提示输出文件等等。除了清晰明了,还有一个好处就是输入参数的顺序可以随意一些。
在python中,实现这个功能的函数跟C/C++中一样,也是getopt().下面用实际的代码展示一下。
1. getoptions.py
首先,我们定义一个usage()函数,用以展示帮助信息:
def usage():
print "getoptions.py usage:"
print "python getoptions.py <options> <source files> "
print "-i,--input: the input filename."
print "-o,--ouput: the output filename."
print "-h,--help: show the help information."
主函数部分如下:
#引入sys和getopt包
import sys, getopt
opts, args = getopt.getopt(sys.argv[1:],'i:o:h',['input=','output=','help'])
inputFile=""
outputFile=""
for opt, arg in opts:
if opt in ('-i','--input'):
inputFile = arg
elif opt in ('-o','--output'):
outputFile = arg
elif opt in ('-h', '--help'):
usage()
sys.exit(2)
else:
usage()
sys.exit(2)
'''
业务逻辑代码
'''
主函数代码中,我们可以看到
(1). getopt这个函数是在getopt这个包中的。
这个函数接收2或者3个参数:第一个参数是命令行中所有的输入;第二个参数是所有的短option;第三个是可选项,长option。这个可选的标志就是方括号[].
(2). 注意到,i/o后面均有:,而h后面没有:。
这表明,需要输入的option必须加:,而且,在长option后面还要加上赋值号=;
不需要输入的option,不可以加:和=。
(3). 在解析option的时候,短的option前加-,长的option前加--。
更多详细内容,请参考官方文档getopt — C-style parser for command line options。