[971]python命令行神器之Click
2021/5/9 22:55:13
本文主要是介绍[971]python命令行神器之Click,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
文章目录
- 安装
- 例子1
- 方法功能
- 其他属性描述
- group方法
- 密码输入
github:https://github.com/pallets/click
Click 是 Flask 的开发团队 Pallets 的另一款开源项目,它是用于快速创建命令行的第三方模块。
我们知道,Python 内置了一个 Argparse 的标准库用于创建命令行,但使用起来有些繁琐,Click 相比于 Argparse,就好比 requests 相比于 urllib。
安装
pip install -U click
例子1
import click @click.command() @click.option("--count", default=1, help="Number of greetings.") @click.option("--name", prompt="Your name", help="The person to greet.") def hello(count, name): """Simple program that greets NAME for a total of COUNT times.""" for _ in range(count): click.echo(f"Hello, {name}!") if __name__ == '__main__': hello()
结果
$ python hello.py --count=3 Your name: Click Hello, Click! Hello, Click! Hello, Click!
方法功能
- command:用于装饰一个函数,使得该函数作为命令行的接口,例如上述装饰hello
- option:用于装饰一个函数,主要功能是为命令行添加选项
- echo:用于输出结果,由于print函数在2.x和3.x之间存在不同之处,为了更好的兼容性,因此提供了echo输出方法
- Choice:输入为一个列表,列表中为选项可选择的值
把上述程序的帮助信息输出
$ python hello.py --help Usage: hello.py [OPTIONS] Simple program that greets NAME for a total of COUNT times. Options: --count INTEGER Number of greetings. --name TEXT The person to greet. --help Show this message and exit.
其他属性描述
- default:给命令行选项添加默认值
- help:给命令行选项添加帮助信息
- type:指定参数的数据类型,例如int、str、float
- required:是否为必填选项,True为必填,False为非必填
- prompt:当在命令行中没有输入相应的参数时,会根据 prompt 提示用户输入
- nargs:指定命令行选项接收参数的个数,如果超过则会报错
- metavar:如何在帮助页面表示值
group方法
Click还提供了group方法,该方法可以添加多个子命令,
import click @click.group() def first(): print("hello world") @click.command() @click.option("--name", help="the name") def second(name): print("this is second: {}".format(name)) @click.command() def third(): print("this is third") first.add_command(second) first.add_command(third) first()
调用子命令second
$ python test.py second --name hh # 输出 hello world this is second: hh
密码输入
# 密码输入有两种方法 import click @click.group() def db(): pass # 方法1 :hide_input 隐式输入,confirmation_prompt:再次确认 @click.command() @click.option('-p', prompt='请输入密码', hide_input=True, confirmation_prompt=True) def inputp(p): """输入密码""" click.echo('p is %s' % p) # 方法2: 我试了下,传参只能是password,其他的会报错 @click.command() @click.password_option() def inputp2(password): click.echo('p is %s' % password) db.add_command(inputp) db.add_command(inputp2) if __name__ == '__main__': db()
# 运行如下 $ python hello.py --help $ python3 hello.py inputp $ python3 hello.py inputp2
参考:https://zhuanlan.zhihu.com/p/68337606
https://blog.csdn.net/weixin_38278993/article/details/100052961
https://www.jianshu.com/p/f6488f10febb
这篇关于[971]python命令行神器之Click的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-28Python编程基础教程
- 2024-12-27Python编程入门指南
- 2024-12-27Python编程基础
- 2024-12-27Python编程基础教程
- 2024-12-27Python编程基础指南
- 2024-12-24Python编程入门指南
- 2024-12-24Python编程基础入门
- 2024-12-24Python编程基础:变量与数据类型
- 2024-12-23使用python部署一个usdt合约,部署自己的usdt稳定币
- 2024-12-20Python编程入门指南