作者:HelloGitHub-Prodesire HelloGitHub 的<讲解开源项目>系列,项目地址:https://github.com/HelloGitHub-Team/Article 一.前言 在前面三篇介绍 fire 的文章中,我们全面了解了 fire 强大而不失简洁的能力.按照惯例,我们要像使用 argparse.docopt 和 click 一样使用 fire 来实现 git 命令. 本文的关注点并不在 git 的各种命令是如何实现的,而是怎么使用 fire 去打造一个实用命…
作者:HelloGitHub-Prodesire HelloGitHub 的<讲解开源项目>系列,项目地址:https://github.com/HelloGitHub-Team/Article 一.前言 在第一篇"初探 fire"的文章中,我们初步掌握了使用 fire 的简单步骤,了解了它 Pythonic 的用法. 今天我们将深入了解 fire 的子命令.嵌套命令和属性访问功能. 本系列文章默认使用 Python 3 作为解释器进行讲解. 若你仍在使用 Python 2…
作者:HelloGitHub-Prodesire HelloGitHub 的<讲解开源项目>系列,项目地址:https://github.com/HelloGitHub-Team/Article 一.前言 在本系列前面所有文章中,我们分别介绍了 argparse.docopt 和 click 的主要功能和用法.它们各具特色,都能出色地完成命令行任务.argparse 是面向过程的,需要先设置解析器,再定义参数,再解析命令行,最后实现业务逻辑.docopt 先用声明式的语法定义出参数,再过程式地…
作者:HelloGitHub-Prodesire HelloGitHub 的<讲解开源项目>系列,项目地址:https://github.com/HelloGitHub-Team/Article 一.前言 在上一篇文章中我们介绍了 fire 的子命令.嵌套命令和属性访问等内容,今天我们将继续深入了解 fire 的其他功能. 本系列文章默认使用 Python 3 作为解释器进行讲解. 若你仍在使用 Python 2,请注意两者之间语法和库的使用差异哦~ 二.功能 2.1 最简命令实现 在上一节中…
作者:HelloGitHub-Prodesire HelloGitHub 的<讲解开源项目>系列,项目地址:https://github.com/HelloGitHub-Team/Article 一.前言 在本系列前面几篇文章中,我们分别介绍了 argparse 和 docopt 的主要功能和用法.它们各具特色,都能出色地完成命令行任务.argparse 是面向过程的,需要先设置解析器,再定义参数,再解析命令行,最后实现业务逻辑.而 docopt 先用声明式的语法定义出参数,再过程式地解析命令…
click 是一个以尽可能少的代码.以组合的方式创建优美的命令行程序的 Python 包.它有很高的可配置性,同时也能开箱即用. 它旨在让编写命令行工具的过程既快速又有趣,还能防止由于无法实现预期的 CLI API 所产生挫败感.它有如下三个特点: 任意嵌套命令 自动生成帮助 支持运行时延迟加载子命令 1.业务逻辑 首先定义业务逻辑,是不是感觉到有些难以置信呢? 不论是 argparse 还是 docopt,业务逻辑都是被放在最后一步,但 click 却是放在第一步.细想想 click 的这种方…
照着例子看看打打,码了就会.写了个命令行参数调用进行运算的脚本. 参考文章链接:http://www.jianshu.com/p/a50aead61319 #-*-coding:utf-8-*- __author__ = 'Deen' ''' import argparse parser = argparse.ArgumentParser() # 这个action的作用为,如果使用verbosity,则赋值为true,否则为false parser.add_argument("--verbosi…
作者:HelloGitHub-Prodesire HelloGitHub 的<讲解开源项目>系列,项目地址:https://github.com/HelloGitHub-Team/Article 一.前言 在近半年的 Python 命令行旅程中,我们依次学习了 argparse.docopt.click 和 fire 库的特点和用法,逐步了解到 Python 命令行库的设计哲学与演变. 本文作为本次旅程的终点,希望从一个更高的视角对这些库进行横向对比,总结它们的异同点和使用场景,以期在应对不同…
作者:HelloGitHub-Prodesire HelloGitHub 的<讲解开源项目>系列,项目地址:https://github.com/HelloGitHub-Team/Article 一.前言 在本系列前面四篇文章中,我们介绍了 argparse 的方方面面.它无疑是强大的,但使用方式上略显麻烦.需要先设置解析器,再定义参数,再解析命令行,最后实现业务逻辑. 而今天要介绍的 docopt 则是站在一个全新的视角来审视命令行.你可曾想过,一个命令行程序的帮助信息其实已然包含了这个命令…
『讲解开源项目系列』启动--让对开源项目感兴趣的人不再畏惧.让开源项目的发起者不再孤单.跟着我们的文章,你会发现编程的乐趣.使用和发现参与开源项目如此简单.欢迎联系我们给我们投稿,让更多人爱上开源.贡献开源- 前言 你是否好奇过在命令行中敲入一段命令后,它是如何被解析执行的?是否考虑过由自己实现一个命令行工具,帮你执行和处理任务?是否了解过陪伴在你身边的 Python 有着丰富的库,来帮你轻松打造命令行工具? 别着急,本文作为 Python 命令行之旅的第一篇将带你逐步揭开命令行解析的面纱,介绍…