pythonic参数分析器,它会让你微笑

docopt-unicode的Python项目详细描述


docopt 创建漂亮的命令行界面

这是docopt的一个分支,支持unicode argv。当这个拉 请求被合并,它可以消失:

https://github.com/docopt/docopt/pull/220

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使用split函数分割字符串,但没有得到期望的结果   未找到包含derby数据库嵌入架构的sql Java桌面应用程序错误   java elasticsearch vs solr用于定制全文搜索系统   java Android:创建没有startOffset的动画延迟?   java如何查看其他应用程序接收的数据?   java如何在Linux中使用D和classpath选项运行jar文件   java和域设计最佳实践   具有相同内存位置的java数组,将显示为输出   连接到java中的elasticsearch?   Java Playframework重定向到带有Json负载的外部url   java无法在Android平台上使用InputStream为蓝牙socket创建ObjectInputStream   使用POI将Excel日期转换为Java日期,年份未正确显示   oracle从数据库层还是Java层调用webservice?