python图片解析库_Python 参数解析库 docopt 简单使用图文教程

Part 1 说明:

0 嫌啰嗦的直接到 正式开始 的位置。

1 docopt 是一个参数解析的库。所以这个算是一个小教程。如果没有python基础,还是建 议先去学一下。

2 另外百度一下发现了 optparse 这个python 系统自带的库。简单的看了看。知乎上大神说 珍爱生命 远离 optparse。下了我一跳。这里不代表我的观点。毕竟自带的,可以去看看比较一下。。。不过这不是本文的重点了。

3 百度了半天的docopt 教程只找到了这个 看了还是没怎么懂。算了,还是自己搞一搞吧。

part 2 背景:

前几天,看了一个教程。制作一个火车票查看器这个小功能作者写得挺有思路确实写得不错,如果感兴趣可以去看看这个文章。制作完这个小的工具以后就能用命令去查询相应的火车票情况。 so cool。

AAffA0nNPuCLAAAAAElFTkSuQmCC

火车票查询输出结果.png

python学艺不精+_+,想探究一下命令是怎么一步步控制执行代码的。打开作者的文件里面发现了只是这个样子。

AAffA0nNPuCLAAAAAElFTkSuQmCC

火车票的py实现.png

甚至都没有看到怎么去写出想要的规则??好吧,一开始我也是拒绝的。那么就去找一下源码吧。这里的说明也是最权威了,于是找到了这么一段话:

AAffA0nNPuCLAAAAAElFTkSuQmCC

git截图.png

大概意思是: 我擦,你还用原始的方式写解析参数? 别傻了,你是不是想一边写注释 一边 顺带把解析规则也写了,对!docopt就是要让你这么吊~ (翻译的不对?)

看了上面的这段话我也是深深的震精了? 什么? 注释都能用在程序里面? 合理吗? 于是自己还是去探究了一下如下函数:

AAffA0nNPuCLAAAAAElFTkSuQmCC

doc小demo.png

也就是说 这个函数里面的注释能通过一个doc 参数打印出来,当然要是这个是整个文档的说明,那么打印的就是文档对应的doc 这里就不测试了,下面的就是这样的例子。docopt的作者也是真的吊吊吊。

好吧安装 docopt 的方式 pip3 install docopt 。上面写了那么多废话。都懒得删除了。。。

正式开始

docopt 用了一天了感觉完整的分析一个demo 就能说明其中基本用法了。。

AAffA0nNPuCLAAAAAElFTkSuQmCC

完整的demo.png

上图是一个完整的demo

AAffA0nNPuCLAAAAAElFTkSuQmCC

完整的demo.png

主函数就是调用罢了。没什么好说的

看上面分了4个部分 Usage Arguments Options Examples 各个分析一下:

Options:

AAffA0nNPuCLAAAAAElFTkSuQmCC

Options.png

指令 zhangTestArgument.py -qvrh 123.txt 里面的参数 是 -qvrh 下面是对参数的说明:

-h --help 这两个没什么卵区别,中间可以使 空格也可以是 逗号!如果是 长指令 前面是用 -- (例如 --help)

AAffA0nNPuCLAAAAAElFTkSuQmCC

options2.png

这种还是纠结了一下:

-q 其实代表的是 --quite Sel 那么当我们执行 zhangTestArgument.py -q [FILE] 这个指令的时候 实际上相当于是 zhangTestArgument.py --quite Sel [FILE] 这样就是两个参数了~

Arguments:

AAffA0nNPuCLAAAAAElFTkSuQmCC

Arguments.png

这里面是叙述的是上面的参数 后面跟着的是说明了这个参数的作用。(笔者看了看这块感觉除了说明一些是做什么的,好像没啥用了。)

Examples:

AAffA0nNPuCLAAAAAElFTkSuQmCC

Examples.png

这就是告诉怎么用。。。

Usage:(Usage是声明指令怎么使用的部分,必须要写的,下面是重中之重)

AAffA0nNPuCLAAAAAElFTkSuQmCC

Usage.pngzhangTestArgument.py 这个部分是名字 如指令 python3 XXXX -vf file.txt 其中的 XXXX 就是这

[-vqrh] 这个是参数位置 这里面的参数必须要在下面的 options 选项中声明. 这里面添加了 [] 这个是因为 这些参数是可选的,要是直接写成 -v 这样那么想执行这条指令必须写-v。其实可以写成 [-v][-q][-r][-h],这样也行,但是怪怪的。另外 如果参数是长参数 那么不能直接简写成 -vqrh 的形式 只能是 --help --file --nimei 这种形式。

[FILE] 这个是参数 加上[]作用同上。这个就像是 定义了一个 str变量一样。 可以给str 赋值 后期可以取出来。

注意到 ... 了吗? 这个的作用是让前面一个参数重复多次,最后以数组输出。没看懂没关系一会看看最后的输出就懂了。

(-left | -right) 这个()的作用是说这里面必须要选择一个 要么是 --right 要么是 --left,注意 带有()的是必须要选择的。

好了,现在按照上面的弄应该是能写出想要的指令了,然后去终端找到对应的文件之后执行一下指令吧。

AAffA0nNPuCLAAAAAElFTkSuQmCC

执行之后.png

如果指令正确那么就能输出上面格式的内容了,这个是以一个字典的形式来输出的。后期可以根据字典里面的各个数据来分别处理各种情况了。

另外上面还提到了一个 ... 的问题 注意看看 上图中的 FILE 对应的是一个数组。所以 ... 的作用就是声明 [FILE] 是一个数组 所以 可以添加多个,输出的是数组。

后续:

1.只说明了基础的用法。

2.可能写的不是那么清晰。有不明白的可以留言。

3.点击这个是我自己写的 所有带 zhang 前缀的是我自己复写的,有对应的说明。

作者:韩大熊宝要姓张

链接:https://www.jianshu.com/p/9ae4cf88e552

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值