年度归档: 2019年

25 篇文章

Python 命令行之旅:深入 fire(一)
一、前言 在第一篇“初探 fire”的文章中,我们初步掌握了使用 fire 的简单步骤,了解了它 Pythonic 的用法。 今天我们将深入了解 fire 的子命令、嵌套命令和属性访问功能。 本系列文章默认使用 Python 3 作为解释器进行讲解。 若你仍在使用 Python 2,请注意两者之间语法和库的使用差异哦~ ...
Python 命令行之旅:初探 fire
一、前言 在本系列前面所有文章中,我们分别介绍了 argparse、docopt 和 click 的主要功能和用法。它们各具特色,都能出色地完成命令行任务。argparse 是面向过程的,需要先设置解析器,再定义参数,再解析命令行,最后实现业务逻辑。docopt 先用声明式的语法定义出参数,再过程式地解析命令行和实现业务逻辑。click 则是用装饰…
Python 命令行之旅:使用 click 实现 git 命令
前言 在前面五篇介绍 click 的文章中,我们全面了解了 click 的强大能力。按照惯例,我们要像使用 argparse 和 docopt 一样使用 click 来实现 git 命令。 本文的关注点并不在 git 的各种命令是如何实现的,而是怎么使用 click 去打造一个实用命令行程序,代码结构是怎样的。因此,和 git 相关的操作,将会使用…
Python 命令行之旅:深入 click(四)
前言 在前面三篇文章中,我们介绍了 click 中的参数、选项和命令,本文将介绍 click 锦上添花的功能,以帮助我们更加轻松地打造一个更加强大的命令行程序。 本系列文章默认使用 Python 3 作为解释器进行讲解。 若你仍在使用 Python 2,请注意两者之间语法和库的使用差异哦~ 增强功能 Bash 补全 Bash 补全是 click 提…
thumbnail
为终端设置代理
前言 有时候通过终端访问 github 等国外网站的速度感人,需要为终端设置代理来提高速度,然而不同平台上的命令我老忘记,遂记录已备忘。 下文我们假设代理地址是 127.0.0.1:1080。 Linux/Unix # 设置代理 set http_proxy=http://127.0.0.1:1080 set https_proxy=http://…
Python 命令行之旅:深入 click(三)
前言 在上两篇文章中,我们介绍了 click 中的”参数“和“选项”,本文将继续深入了解 click,着重讲解它的“命令”和”组“。 本系列文章默认使用 Python 3 作为解释器进行讲解。 若你仍在使用 Python 2,请注意两者之间语法和库的使用差异哦~ 命令和组 Click 中非常重要的特性就是任意嵌套命令行工具的概念,通过 Comman…
Python 命令行之旅:深入 click(一)
前言 在上一篇文章中,我们初步掌握了 click 的简单用法,并了解到它与 argparse 和 docopt 的不同。接下来,将深入介绍 click 的各类用法,以让你能轻松打造复杂的命令行程序。 在概念上, click 把命令行分为 3 个组成:参数、选项和命令。 参数 就是跟在命令后的除选项外的内容,比如 git add a.txt 中的 a…
Python 命令行之旅:初探 click
前言 在本系列前面几篇文章中,我们分别介绍了 argparse 和 docopt 的主要功能和用法。它们各具特色,都能出色地完成命令行任务。argparse 是面向过程的,需要先设置解析器,再定义参数,再解析命令行,最后实现业务逻辑。而 docopt 先用声明式的语法定义出参数,再过程式地解析命令行和实现业务逻辑。在一些人看来,这些方式都不够优雅。…
Python 命令行之旅:使用 docopt 实现 git 命令
前言 在前面两篇介绍 docopt 的文章中,我们全面了解了 docopt 的能力。按照惯例,我们要像使用 argparse 一样使用 docopt 来实现 git 命令。 为了让没读过 使用 argparse 实现 git 命令 的小伙伴也能读明白本文,我们仍会对 git 常用命令和 gitpython 做一个简单介绍。 本系列文章默认使用 Py…