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 将帮助消息放入模块文档字符串。