Python自定义命令行参数

用过别人的脚本命令参数后,如何自己也自定义命令行参数呢,下面教给大家这些纸老虎:

命令行模块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

自定义就是这么简单。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容