docopt fork,请参阅自述文件

docopt-mpe的Python项目详细描述


docopt 创建漂亮的命令行界面

这是docopt的0.6.x分支,添加了对docopt内部的访问 使用docopt(…return_spec=true)的对象

还添加了一个 选项.meta 属性,试图记住原始名称 值占位符的。 参数.name 已可用。

这类似于optparse.option上的"meta"属性。 由docopt支持:

<Meta-or-Arg-Name>
META-OR-ARG-NAME

这应该能够利用一些基本的验证或 通过将处理程序与元名称关联,输入值的解析。


docopt视频介绍:pycon uk 2012:create*beautiful* 与python的命令行接口

< Buff行情>

0.6.1版中的新功能:

  • 修复问题 85 导致快捷方式处理不当 如果它出现过几次。

0.6.0版中的新功能:

  • 新参数 选项优先,不允许插入选项 还有争论。如果您提供选项 docopt ,它将把所有参数解释为位置参数 第一个位置参数后的参数。
  • 如果带参数的选项可以重复,则其默认值为 将被解释为空格分隔的列表。例如 [默认值:./here./there] 将被解释为 ['./这里, './那里]

中断更改:

  • 快捷方式的含义略有改变。以前 任何已知的选项。现在它意味着任何不在 使用模式"。这避免了当选项是 允许无意中重复。
  • argv 默认为 ,而不是 系统argv[1: 。 这允许docopt始终使用最新的sys.argv, 在导入期间不 sys.argv

如何生成帮助不是很好吗 基于代码的消息?!< >

该死的不! 你知道什么很棒吗?当选项解析器 根据你自己写的漂亮的帮助信息生成! 这样你就不需要编写这种愚蠢的可重复的解析器代码, 相反,只能按您希望的方式编写帮助消息–

docopt 帮助您创建最漂亮的命令行界面 很容易

"""Naval Fate.

Usage:
  naval_fate.py ship new <name>...
  naval_fate.py ship <name> move <x> <y> [--speed=<kn>]
  naval_fate.py ship shoot <x> <y>
  naval_fate.py mine (set|remove) <x> <y> [--moored | --drifting]
  naval_fate.py (-h | --help)
  naval_fate.py --version

Options:
  -h --help     Show this screen.
  --version     Show version.
  --speed=<kn>  Speed in knots [default: 10].
  --moored      Moored (anchored) mine.
  --drifting    Drifting mine.

"""fromdocoptimportdocoptif__name__=='__main__':arguments=docopt(__doc__,version='Naval Fate 2.0')print(arguments)

打败它!选项解析器是基于上面的docstring生成的 传递给 docopt 函数。 docopt 分析用法 模式( "用法: …" )和选项说明(以行开头 使用破折号" - ",并确保程序调用与 使用模式;它根据 那。基本思想是一个好的帮助消息有所有必要的 在其中生成解析器的信息

此外,还建议使用 pep 257 将帮助消息放入模块文档字符串。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java Apache Flink外部Jar   创建和强制转换对象数组时发生java错误   Java,添加数组   具有相同包结构和类的java JAR   java Jenkins未能构建Maven项目   java为什么一个forloop比另一个更快,尽管它们做的“一样”?   servlets在将“/”站点迁移到Java EE包时处理contextpath引用   无法解析java MavReplugin:2.21或其某个依赖项   泛型如何编写比较器来泛化Java中的两种类型的对象?   java Android Emulator未在netbeans上加载   多线程Java使用线程对数组中的数字求和:在同步块中使用新变量作为锁:差异   java如何在JSP/servlet中设置<input>标记的值?