ITPub博客

首页 > 应用开发 > > 使用 Python 和 Click 编写命令行应用程序

使用 Python 和 Click 编写命令行应用程序

作者:coyan 时间:2019-10-21 10:46:49 0 删除 编辑

Python之眼 



导读:python 构建命令行应用的第三方比较有名的包除了 click 之外还有一个叫 docopt,这是一个以文档先行为目标的包。个人是比较倾向于 Click 的,看了这篇文章之后,也很快写了一个 demo。

我对命令行很着迷。

我想为自己构建一个命令行应用程序,有这个想法之后,经过一番研究,我发现 Python 自带的内置模块 argparse 是不够的。

然后,我发现了「Click」模块。所以,今天,我们将尝试使用 Python 和 Click 创建一个基本的应用程序。

安装

$ pip install click

Hello, World

让我们保持传统,首先编写一个「Hello,World」,将这个文件命名为 cli.py

import click

@click.command()

def hello():

click.echo('Hello World!')

click.echo() 向给定的文件或标准输出打印一条消息外加一个换行符,初看起来,这很像 print函数,但它改进了对处理 Unicode 和二进制数据的支持。

command 装饰器将函数转换成一个可以被调用的命令:

if __name__ == '__main__':

hello()

调用时是这样的:

$ python hello.py

Hello World!

对应的帮助信息是这样的:

$ python hello.py --help

Usage: hello.py [OPTIONS]

Options:

--help Show this message and exit.

参数

目前,我们没有太多的计划工作,让我们给它添加一些参数。

运行:

$ python cli.py Anshul

Hello, Anshul!

如果没有参数,运行:

$ python cli.py

Usage: cli.py [OPTIONS] NAME

Error: Missing argument "name".

选项

顾名思义,这些是选项,不同于我们上面看到的参数,选项是可选的,不是强制性的。

运行:

$ python cli.py Anshul --count 3

Hello, Anshul!

Hello, Anshul!

Hello, Anshul!

布尔 flags

有一些选项不需要任何值,他们只是 flag(即标识)。例如 --help 命令,它并不需要一个值,另一个可能在使用 cli 工具时会注意到的例子是 --version。

运行:

$ python cli.py

Well, that didn't go as planned!

$ python cli.py --flag

Our flag will sail high and above!

现在就是这样,从这里开始你就可以做很多事情了

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/2236/viewspace-3119620/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2019-07-11

  • 博文量
    271
  • 访问量
    16167