用过别人的脚本命令参数后,如何自己也自定义命令行参数呢,下面教给大家这些纸老虎:
命令行模块getopt:
getopt函数中一共有三个参数:
getopt.getopt(sys.argv[1:], "ho:i:", ["help", "output="])
- sys.argv[1:] 和C语言中的argv相似,我们一般写sys.argv[1:]来过滤第一个参数,因为第一个参数是python脚本文件名,一般对我们没有实际用处,过滤掉即可。
- "ho:i:":刚看的同学肯定有点懵*,可以称作为短格式分析串,是否曾经用过类似 XXX -i XXX -o XXX这样的命令,这对帮助你理解短格式分析串很有帮助,h不加":",表示不带参数。即-h,o后面有":"代表需要加参数-o "your file path",那么短格式,输入一个"-"即可。
- ["help", "output="]:python列表形式表示,称为长格式串,无"="不加参数,带"="需要加参数类似短格式串。用法为--help --output "your file path"。
以上分析相信你已经了解了这些参数作用,那么上一段简短的代码:
if __name__ == '__main__':
# for item in allfile:
# print item
# print os.path.splitext(item)[0]
#getopt()
try:
options, args = getopt.getopt(sys.argv[1:], "ho:i:", ["help", "ip=", "port="])
except getopt.GetoptError:
print 'hi Sam getopt error!Please input -h or --help'
sys.exit(1)
for name, value in options:
if name in ("-h", "--help"):
usage()
print ""
elif name in("-o","-i"):
print "short parameter %s" % (value)
elif name in("--ip","--port"):
print "long parameter %s"%(value)
for item in args:
print item
python环境下我们输入命令测试我们的脚本是否正确:
$ python getoptTest.py -o sam -i tom
short parameter sam
short parameter tom
$ python getoptTest.py --port 80
long parameter 80
python FileTest.py --port 80 -o Sam 100 120
long parameter 80
short parameter Sam
100
120
如果我们估计输入错误:
$ python FileTest.py -i
异常捕获结果:hi Sam getopt error!Please input -h or --help
自定义就是这么简单。