对于程序员而言,效率是日常工作中必须考虑的一个要点,优秀的编程习惯会大大减少工作时间以及精力,缩短开发周期。例如程序的执行,更多的程序员会选择简单快捷的命令行参数执行方式,而对于python而言,模块getopt正好可以用来执行该问题。
模块提供的两个函数中,getopt(args, options[, long_options])函数是命令行执行的核心。在代码中可有如下格式:
options,args=getopt.getopt(sys.argv[1:],"hi:o:",["help","input=","ouput="])
函数参数分别为命令行输入参数的字符串,单字母参数集,多字母参数集。返回值分两部分,第一部分是格式为(option,value)的元组,第二部分为输入参数的剩余无用部分。可能大家看到这边有点糊涂。我们利用一个例子讲解:
options,args=getopt.getopt(sys.argv[1:],"hi:o:",["help","input=","ouput="])
for option,value in options:
if option in ("-h","help"):
print helpFormation
if option in ("-i","input="):
print "input is:",value
if option in ("-o","output="):
print "output is:",value
在cmd输入参数可以是:python demo.py -h -i abc -o cba
python demo.py help input=abc output=cba
通过例子可以更加清晰的理解。
函数getopt()的第二参数代表单字母参,后边不跟冒号代表输入时必须不跟相应参数,比如”python demo.py -h“;跟冒号代表输入时必须跟相应参数,比如”python demo.py -i abc“
第三参数代表多字母参,后边不跟等号代表输入时必须不跟相应参数,比如”python demo.py help“;跟等号代表输入时必须跟相应参数,比如”python demo.py input=abc“。
其返回值将分两部分,第一部分为元组,其形式如:[("-h",),("-i","abc"),("-o","output")],第二部分为输入输入参数剩余字符串。如果输入参数为”python demo.py -h -i abc -o cba abcdefg“,那么args将是”abcdefg“。