python编写命令行框架_使用 Python 和 Click 编写命令行应用程序
简评: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.
参数
目前,我们没有太多的计划工作,让我们给它添加一些参数。
import click
@click.command()
@click.argument('name')
def hello(name):
click.echo(f"Hello, {name}!")
if __name__ == '__main__':
hello()
运行:
$ python cli.py Anshul
Hello, Anshul!
如果没有参数,运行:
$ python cli.py
Usage: cli.py [OPTIONS] NAME
Error: Missing argument "name".
选项
顾名思义,这些是选项,不同于我们上面看到的参数,选项是可选的,不是强制性的。
import click
@click.command()
@click.option('--count', default=1, help="Number of greetings.")
@click.argument('name')
def hello(count, name):
for i in range(count):
click.echo(f"Hello, {name}!")
if __name__ == '__main__':
hello()
运行:
$ python cli.py Anshul --count 3
Hello, Anshul!
Hello, Anshul!
Hello, Anshul!
布尔 flags
有一些选项不需要任何值,他们只是 flag(即标识)。例如 --help 命令,它并不需要一个值,另一个可能在使用 cli 工具时会注意到的例子是 --version。
import click
@click.command()
@click.option('--flag', is_flag=True)
def hello(flag):
if flag:
click.echo("Our flag will sail high and above!")
else:
click.echo("Well, that didn't go as planned!")
if __name__ == '__main__':
hello()
运行:
$ python cli.py
Well, that didn't go as planned!
$ python cli.py --flag
Our flag will sail high and above!
现在就是这样,从这里开始你就可以做很多事情了
扩展阅读:极光日报,极光开发者旗下媒体。
每天导读三篇英文技术文章。
python编写命令行框架_使用 Python 和 Click 编写命令行应用程序相关推荐
- python gui编程 自动化框架_使用Python进行GUI操作自动化
前言 本文介绍怎样使用Python进行跨平台的GUI操作的,其中使用的一个工具包是pyautogui,PyAutoGUI可以模拟鼠标的移动.点击.拖拽,键盘按键输入.按住操作,以及鼠标+键盘的热键同时 ...
- python 数据驱动接口自动化框架_利用Python如何实现数据驱动的接口自动化测试...
前言 大家在接口测试的过程中,很多时候会用到对CSV的读取操作,本文主要说明Python3对CSV的写入和读取.下面话不多说了,来一起看看详细的介绍吧. 1.需求 某API,GET方法,token,m ...
- python什么时候用框架_关于python:框架和对象之间有什么区别,什么时候应该修改另一个?...
我开始阅读python的+=语法,无意中发现了以下文章/答案:关于的交互式代码+= 所以我注意到帧和对象之间似乎有区别. . 在全局框架中,它们指向同一对象,即使它们是不同的变量:如果 l2 += [ ...
- python深度学习include框架_用Python实现深度学习框架
1.大咖推荐:复旦大学计算机学院教授邱锡鹏.品质科技创始人兼CEO袁进辉(@老师木).格灵深瞳创始人兼CEO赵勇.奇虎360集团副总裁邓亚峰联合推荐 2.干货满满:从零开始用Python实现自己的深度 ...
- python路径在哪里设置_找Python安装目录,设置环境路径以及在命令行运行python脚本实例...
第一点:找Python安装目录 方法一: 方法二: 输入import sys print(sys.path) 化黑线处 第二点:找到安装目录后就可以开始设置环境变量 这里我的安装目录为C:\Progr ...
- python中scrapy框架_简述python Scrapy框架
一.Scrapy框架简介 Scrapy是用纯Python实现一个为了爬取网站数据,提取结构性数据而编写的应用框架,用途非常广泛.利用框架,用户只需要定制开发几个模块就可以轻松的实现一个爬虫,用来抓取网 ...
- pythonscrapy框架_简述python Scrapy框架
一.Scrapy框架简介 Scrapy是用纯Python实现一个为了爬取网站数据,提取结构性数据而编写的应用框架,用途非常广泛.利用框架,用户只需要定制开发几个模块就可以轻松的实现一个爬虫,用来抓取网 ...
- python制作物联网控制软件下载_基于Python和Django框架的物联网智能设备管理系统的设计与实现...
论文写作指导:请加QQ229366758 基于Python和Django框架的物联网智能设备管理系统的设计与实现 作者:未知 摘 要:针对目前日益增多的智能设备提出了兼容性好,稳定性高,易于管理的管理 ...
- python后端学什么框架_献给正在学习python的你, 10个最受欢迎的Python开源框架
很多小伙伴在学习wen的时候说,有没有几个常用的框架,好多小伙伴都只说对了其中几个,只有少部分是说正确的,想要了解更多,欢迎大家订阅微信公众号:Python从程序猿到程序员,或者加4913.08659 ...
最新文章
- python3安装步骤
- hdu (欧拉函数+容斥原理) GCD
- python q切换指定目录_Python小工具:3秒钟将视频转换为音频
- uni开发中可以用table标签么_「uni-app 组件」t-table 表格
- minecraft pythonapl_Substance PythonAPI入门案例
- include函数_include()函数以及JavaScript中的示例
- 后台拿webshell的常用方法总结
- 47 CO配置-控制-利润中心会计-设置实际数据的控制参数
- mysql修改root密码及修改密码过程中报错的解决方案
- C++相对路径下新建文件夹
- MySql Workbench不支持中文字符找不到my.cnf文件解决办法
- python web框架django面试题收藏
- 迅雷开放离线下载试用,每天8000名额,速度来抢!
- swarm主网BZZ挖矿:钱包如何添加BZZ合约?如何查钱包余额?
- 射频信号发生器的使用以及相关中心频率,载波,调制波术语解释
- java 蓝桥杯 分机号
- 计算机表格怎样筛选男女,excel表格数据男女筛选-EXCEL表格中选择性别怎么做 就是如何做筛选 ,比如......
- 中国成语测试软件,中国汉字水平测试
- ArrayList 类 的简单应用
- Windows/Linux日志分析