位置: 编程技术 - 正文

Python中的命令行参数解析工具之docopt详解(python怎么用命令行)

编辑:rootadmin

推荐整理分享Python中的命令行参数解析工具之docopt详解(python怎么用命令行),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:python 命令,python命令行在哪里,python命令行在哪里,python命令行有什么用,python中的命令行在哪,python命令行代码雨,python3 命令行,python3 命令行,内容如对您有帮助,希望把文章链接给更多的朋友!

前言

docopt 是一个开源的库,代码地址: README 中就已经做了详细的介绍,并且还附带了很多例子可供学习,这篇文章也是翻译一下 README 中内容……

docopt 最大的特点在于不用考虑如何解析命令行参数,而是当你把心中想要的格式按照一定的规则写出来后,解析也就完成了。

docopt的安装

docopt有很多种版本,分别支持不同的语言,最简答的docopt支持python脚本,docopt.java支持java脚本,docopts则是支持shell脚本的(下面的例子主要以docopts为例),具体的可以参见github的docopt说明

安装docopt

以mac os x为例安装,安装docopts前首先需要安装docopt,有两种安装方法

方法一

比较简单的方法是直接用 pip 安装, pip install docopt==0.6.2

有些mac可能不支持直接pip 指令,需要先安装pip

方法二

也可以在github上下载源码(docopt是开源项目),然后通过python setup.py install 安装

安装docopts

安装docopts就必须使用上面安装docopt的方法二,在GitHub上下载源码,然后 使用python安装,下载地址

docopt 的实现简单分析

在 Python 中有这么一个属性 __doc__ ,它的值是字符串,一般表示帮助信息,而 docopt 正是利用了这一属性,把帮助信息替换成命令行参数解析说明,再对它进行解析即可。

举个 docopt 中的例子来说明:

上述代码段中,很大一段帮助信息就是我们的命令行参数解析说明,在函数入口处调用docopt函数进行解析,返回的arguments变量是一个字典型变量,它记录了选项是否被选用了,参数的值是什么等信息,当程序从命令行运行时,我们就是根据arguments变量的记录来得知用户输入的选项和参数信息。

所以如何写好命令行参数解析说明就变得至关重要了,命令行解析信息包含两部分,分别是使用模式格式和选项描述格式。

使用模式格式(Usage pattern format)

使用模式以usage:开始,以空行结束,如上代码段所示,它主要描述了用户添加命令行参数时的格式,也就是使用时的格式,解析也是按照此格式来进行的。

每一个使用模式都包含如下元素:

* 参数

参数使用大写字母或者使用尖括号<>围起来。

Python中的命令行参数解析工具之docopt详解(python怎么用命令行)

* 选项

选项以短横线开始-或者--。只有一个字母时格式-o,多于一个字母时--output。同时还可以把多个单字母的选项合并,-ovi等同于-o、-v、-i。选项也能有参数,此时别忘了给选项添加描述说明。

接下来是使用模式中用到的一些标识的含义,正确地使用他们能够更好的完成解析任务:

* []

代表可选的元素,方括号内的元素可有可无

* ()

代表必须要有的元素,括号内的元素必须要有,哪怕是多个里面选一个。

* |

互斥的元素,竖线两旁的元素只能有一个留下

* ...

代表元素可以重复出现,最后解析的结果是一个列表

* [options]

指定特定的选项,完成特定的任务。

选项描述格式(Option description format)

选项描述同样必不可少,尤其是当选项有参数,并且还需要为它赋默认值时。

为选项添加参数的格式有两种:

为选项添加描述说明,只需要用两个空格分隔选项和说明即可。

为选项添加默认值时,把它添加到选择描述后面即可,格式如下[default: <my-default-value>]

如果选项是可以重复的,那么它的值[default: ...]将会一个 list列表,若不可以重复,则它的值是一个字符串。

使用

理解了 使用模式格式 和 选项描述格式 之后,再配合给出的例子就能较好的理解了。

接下来就是得到输入的信息了。

在前面提到arguments参数是一个字典类型,包含了用户输入的选项和参数信息,还是上面的代码段例子,假如我们从命令行运行的输入是

那么打印arguments参数如下:

从打印信息可以看到,对于选项,使用布尔型来表示用户是否输入了该选项,对于参数,则使用具体值来表述。

这样一来,程序就可以从arguments变量中得到下一步的操作了。若是用户什么参数都没输入,则打印Usage说明提示输入内容。

总结

标签: python怎么用命令行

本文链接地址:https://www.jiuchutong.com/biancheng/377147.html 转载请保留说明!

上一篇:Python使用PDFMiner解析PDF代码实例(python pdf操作)

下一篇:python递归查询菜单并转换成json实例(python递归查找)

  • 出口退税是什么部门负责
  • 适用增值税零税率的有
  • 什么是原始凭证?审核原始凭证主要审查哪些内容?
  • 没达到起征点需要申报吗
  • 纸质发票红冲操作流程
  • 进出口企业需要具备的资质
  • 对公账户转账给法人用途写什么
  • 利润表中持续经营净利润公式
  • 营业外支出罚款所得税怎么处理
  • 赡养老人专项附加扣除可以是爷爷奶奶吗
  • 公司授权给公司有风险吗?
  • 专用发票不抵扣怎么做分录
  • 应付票据保证金的会计分录怎么写
  • 租赁收入无发票怎么做账
  • 提前给货款计入什么科目
  • 充话费送手机如何缴纳增值税
  • 非营利性代收代付费用会计处理怎么做?
  • 质量问题扣款账务处理
  • 递延收益可以是负数吗
  • 境外企业开票没有税号怎么办?
  • 现代服务业要满足什么条件才转一般纳税人
  • 企业所得税审计的内容包括哪四个方面
  • 怎么计算房地产公司可以贷款多少
  • 酒店会计账务处理及税务申报
  • 电子税务局实名采集怎么弄
  • 金蝶k3迷你版年度结账
  • 现金支出有哪些项目
  • 电脑开机弹出documents文件夹
  • 网页游戏玩着卡
  • 员工离职补偿金计算方法
  • 对于接受捐赠的资产价值,应计入当期损益
  • win10 累积更新
  • 网线超五类好还是六类好
  • 煤炭贸易公司账务大全
  • 金融企业会计计提贷款呆账准备金主要贯彻了
  • element-ui表格
  • codeignitor
  • php与java区别
  • 详解php归并排序数据
  • filezilla使用手册
  • python读取TXT文件代码
  • 公司购买家电开什么发票
  • 营改增后增加了什么征税项目
  • Mysql优化之Zabbix分区优化
  • sql server评估期已过版本升级时重启失败
  • c语言缺省值
  • 申报无票收入后期开票要冲回要备案吗
  • 哪些拍卖行为不属于诈骗
  • 暂估入账应该如何操作
  • 年终零余额账户额度和收入相等吗
  • 外资企业股权转让给内资企业流程
  • 所有者权益的确认依赖于资产和负债的确认
  • 差旅津贴和差旅补贴需要申报个税吗?
  • 新增注册资金
  • MySQL-tpch 测试工具简要手册
  • win7旗舰版系统恢复
  • win10怎么进u盘系统
  • Win8系统筛选器Smartscreen阻止恶意程序运行
  • xp系统的本地连接
  • winxp系统介绍
  • Windows tips小技巧
  • Win10预览版镜像
  • win7系统鼠标指针异常
  • windows8如何调用摄像头
  • win10画图功能
  • win7系统IE浏览器怎么去掉360导航
  • win8怎么开启蓝牙
  • win8系统触摸板按键不能用
  • linux监控网络请求
  • windows2003服务器管理器在哪里
  • android保存网络图片
  • shell脚本实现监控进程
  • 安卓框架是什么怎么用
  • python迭代类型
  • js下拉菜单的制作方法
  • 进入杭州车辆怎么申请
  • 税控盘丢失怎么写情况说明
  • 广东省国家税务局网上办税大厅
  • 股权转让和大宗转让区别
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设