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。