python命令行神器click介绍steemCreated with Sketch.

in #cn7 years ago (edited)

缘由

我发现我的记忆力不行,学习过的很多东西很快就忘了。比如linux下的很多命令,之前用过,但是过了一段时间,又要重新查找怎么使用。

我又发现,我自己开发的很多应用,相对来说记得就比较牢固。我猜想,每个人的思维模型可能都不相同,你学习别人的东西,采用的是别人的模型,你自己设计的东西,是你自己的模型,最符合自己的习惯,所以就记得牢固一些。

所以我决定,把一些常用的命令和功能,封装成我自己的命令行程序,这样用起来比较顺手,也不会忘记了。

我尝试用python语言开发命令行程序,找到一个click的库,有了它,开发python命令行程序,事半功倍。

click 介绍

相关资料网上大把,我参考了下面几个:

click详细文档(英文版)

命令行神器 Click 简明笔记

Python Click 学习笔记

下面仅介绍我自己用到的几个功能。

主命令

#!/usr/bin/env python3
必须添加这条语句,这样python脚本可以直接当命令使用
import click
@click.command
def hello():
    print('hello')
hello()

如示例,只需要为函数添加command装饰器即可。

子命令

@click.group()
def cli(): pass

@cli.command()
def aa(): print('aa')

还有一种方法添加子命令,大家自行查阅资料就好了。

Argument参数

有两种参数,一种是 Argument参数,一种是 Option参数。这里介绍 Argument参数, Option参数请自行查阅资料。

@ click. command()
@ click. argument('f', type=click.Path( exist= True))
def touch(f):
    click.echo(click.format_filename(f))

还有一个自动补全的功能,我们下一篇文章进行介绍。

另外补充一下,你的脚本默认不是可执行的,可通过 chmod 777 filename命令增加可执行属性。